diff options
author | Sam Potts <sam@potts.es> | 2019-01-29 21:33:16 +1100 |
---|---|---|
committer | Sam Potts <sam@potts.es> | 2019-01-29 21:33:16 +1100 |
commit | fa4868a26da7f433df98fff97f8d0acb7e33ce4a (patch) | |
tree | 78da59e6894704893cc70fb6af4608b6bf84650c /src/js/listeners.js | |
parent | 6bf6c3f0f482f59cb1a40c90cf5f859a5b0d11b8 (diff) | |
download | plyr-fa4868a26da7f433df98fff97f8d0acb7e33ce4a.tar.lz plyr-fa4868a26da7f433df98fff97f8d0acb7e33ce4a.tar.xz plyr-fa4868a26da7f433df98fff97f8d0acb7e33ce4a.zip |
Fix listeners for preview thumbs when changing source
Diffstat (limited to 'src/js/listeners.js')
-rw-r--r-- | src/js/listeners.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/js/listeners.js b/src/js/listeners.js index ae9277a5..68a83d0b 100644 --- a/src/js/listeners.js +++ b/src/js/listeners.js @@ -740,6 +740,42 @@ class Listeners { controls.updateSeekTooltip.call(player, event), ); + // Preview thumbnails plugin + // TODO: Really need to work on some sort of plug-in wide event bus or pub-sub for this + this.bind(elements.progress, 'mousemove touchmove', event => { + const { previewThumbnails } = player; + + if (previewThumbnails && previewThumbnails.loaded) { + previewThumbnails.startMove(event); + } + }); + + // Hide thumbnail preview - on mouse click, mouse leave, and video play/seek. All four are required, e.g., for buffering + this.bind(elements.progress, 'mouseleave click', () => { + const { previewThumbnails } = player; + + if (previewThumbnails && previewThumbnails.loaded) { + previewThumbnails.endMove(false, true); + } + }); + + // Show scrubbing preview + this.bind(elements.progress, 'mousedown touchstart', event => { + const { previewThumbnails } = player; + + if (previewThumbnails && previewThumbnails.loaded) { + previewThumbnails.startScrubbing(event); + } + }); + + this.bind(elements.progress, 'mouseup touchend', event => { + const { previewThumbnails } = player; + + if (previewThumbnails && previewThumbnails.loaded) { + previewThumbnails.endScrubbing(event); + } + }); + // Polyfill for lower fill in <input type="range"> for webkit if (browser.isWebkit) { Array.from(getElements.call(player, 'input[type="range"]')).forEach(element => { |