aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/plyr.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/plyr.js')
-rw-r--r--src/js/plyr.js30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js
index 4ec1c207..d41b81aa 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -290,7 +290,7 @@ class Plyr {
* Get playing state
*/
get playing() {
- return !this.paused && !this.ended && (this.isHTML5 ? this.media.readyState > 2: true);
+ return !this.paused && !this.ended && (this.isHTML5 ? this.media.readyState > 2 : true);
}
/**
@@ -912,8 +912,8 @@ class Plyr {
return this;
}
- // Don't hide if config says not to, it's audio, or not ready or loading
- if (!this.supported.ui || !this.config.hideControls || this.type === 'audio') {
+ // Don't hide if no UI support or it's audio
+ if (!this.supported.ui || this.type === 'audio') {
return this;
}
@@ -928,10 +928,10 @@ class Plyr {
isEnterFullscreen = toggle.type === 'enterfullscreen';
// Whether to show controls
- show = ['click', 'mousemove', 'touchmove', 'mouseenter', 'focusin'].includes(toggle.type);
+ show = ['mouseenter', 'mousemove', 'touchstart', 'touchmove', 'focusin'].includes(toggle.type);
// Delay hiding on move events
- if (['mousemove', 'touchmove'].includes(toggle.type)) {
+ if (['mousemove', 'touchmove', 'touchend'].includes(toggle.type)) {
delay = 2000;
}
@@ -945,11 +945,11 @@ class Plyr {
}
}
- // Clear timer every movement
- window.clearTimeout(this.timers.hover);
+ // Clear timer on every call
+ window.clearTimeout(this.timers.controls);
// If the mouse is not over the controls, set a timeout to hide them
- if (show || this.media.paused || this.loading) {
+ if (show || this.paused || this.loading) {
// Check if controls toggled
const toggled = utils.toggleClass(this.elements.container, this.config.classNames.hideControls, false);
@@ -959,7 +959,7 @@ class Plyr {
}
// Always show controls when paused or if touch
- if (this.media.paused || this.loading) {
+ if (this.paused || this.loading) {
return this;
}
@@ -971,8 +971,16 @@ class Plyr {
// If toggle is false or if we're playing (regardless of toggle),
// then set the timer to hide the controls
- if (!show || !this.media.paused) {
- this.timers.hover = window.setTimeout(() => {
+ if (!show || this.playing) {
+ this.timers.controls = window.setTimeout(() => {
+ console.warn({
+ pressed: this.elements.controls.pressed,
+ hover: this.elements.controls.pressed,
+ playing: this.playing,
+ paused: this.paused,
+ loading: this.loading,
+ });
+
// If the mouse is over the controls (and not entering fullscreen), bail
if ((this.elements.controls.pressed || this.elements.controls.hover) && !isEnterFullscreen) {
return;