aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/listeners.js
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2019-01-29 21:33:16 +1100
committerSam Potts <sam@potts.es>2019-01-29 21:33:16 +1100
commitfa4868a26da7f433df98fff97f8d0acb7e33ce4a (patch)
tree78da59e6894704893cc70fb6af4608b6bf84650c /src/js/listeners.js
parent6bf6c3f0f482f59cb1a40c90cf5f859a5b0d11b8 (diff)
downloadplyr-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.js36
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 => {