diff options
author | Sam Potts <me@sampotts.me> | 2015-06-08 21:43:49 +1000 |
---|---|---|
committer | Sam Potts <me@sampotts.me> | 2015-06-08 21:43:49 +1000 |
commit | f41854ebe72e4ba44c7b66464205b966f5b2f3d2 (patch) | |
tree | 26d935d5b563165cb0e0110d935a5ed29b8a4914 /src/js/plyr.js | |
parent | f398266206e10b945cccdacc7edc4b5eb3308442 (diff) | |
download | plyr-f41854ebe72e4ba44c7b66464205b966f5b2f3d2.tar.lz plyr-f41854ebe72e4ba44c7b66464205b966f5b2f3d2.tar.xz plyr-f41854ebe72e4ba44c7b66464205b966f5b2f3d2.zip |
Minor tweak to hiding controls in fullscreen
Diffstat (limited to 'src/js/plyr.js')
-rw-r--r-- | src/js/plyr.js | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js index abec626d..350c1899 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -1,6 +1,6 @@ // ========================================================================== // Plyr -// plyr.js v1.1.11 +// plyr.js v1.1.13 // https://github.com/selz/plyr // License: The MIT License (MIT) // ========================================================================== @@ -902,11 +902,10 @@ _showCaptions(player); // Disable unsupported browsers than report false positive - if ((player.browser.name === "IE" && player.browser.version === 10) || - (player.browser.name === "IE" && player.browser.version === 11) || - (player.browser.name === "Firefox" && player.browser.version >= 31) || - (player.browser.name === "Chrome" && player.browser.version >= 43) || - (player.browser.name === "Safari" && player.browser.version >= 7)) { + if ((player.browser.name === "IE" && player.browser.version >= 10) || + (player.browser.name === "Firefox" && player.browser.version >= 31) || + (player.browser.name === "Chrome" && player.browser.version >= 43) || + (player.browser.name === "Safari" && player.browser.version >= 7)) { // Debugging _log("Detected unsupported browser for HTML5 captions. Using fallback."); @@ -1147,9 +1146,39 @@ // Set class hook _toggleClass(player.container, config.classes.fullscreen.active, player.isFullscreen); - // Remove hover class because mouseleave doesn't occur - if (player.isFullscreen) { + // Toggle controls visibility based on mouse movement and location + var hoverTimer, isMouseOver = false; + + // Show the player controls + function _showControls() { + // Set shown class + _toggleClass(player.controls, config.classes.hover, true); + + // Clear timer every movement + window.clearTimeout(hoverTimer); + + // If the mouse is not over the controls, set a timeout to hide them + if(!isMouseOver) { + hoverTimer = window.setTimeout(function() { + _toggleClass(player.controls, config.classes.hover, false); + }, 2000); + } + } + + // Check mouse is over the controls + function _setMouseOver (event) { + isMouseOver = (event.type === "mouseenter"); + } + + if(config.fullscreen.hideControls) { + // Hide on entering full screen _toggleClass(player.controls, config.classes.hover, false); + + // Keep an eye on the mouse location in relation to controls + _toggleHandler(player.controls, "mouseenter mouseleave", _setMouseOver, player.isFullscreen); + + // Show the controls on mouse move + _toggleHandler(player.container, "mousemove", _showControls, player.isFullscreen); } } @@ -1541,13 +1570,6 @@ } }); } - - // Bind to mouse hover - if(config.fullscreen.hideControls) { - _on(player.controls, "mouseenter mouseleave", function(event) { - _toggleClass(player.controls, config.classes.hover, (event.type === "mouseenter")); - }); - } } // Destroy an instance |