diff options
author | Sam Potts <sam@potts.es> | 2018-05-19 11:28:38 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-19 11:28:38 +1000 |
commit | c41bb657ac490d032f2992845d21a457a7faedf1 (patch) | |
tree | f147e08205a538014bdde85832661a2fff497df8 /src/js | |
parent | 602353f4d953c5b083ee22fd0ee479ad605de281 (diff) | |
parent | d1acc4abb3e5c7d0b767b3977a6bc804e5b85b45 (diff) | |
download | plyr-c41bb657ac490d032f2992845d21a457a7faedf1.tar.lz plyr-c41bb657ac490d032f2992845d21a457a7faedf1.tar.xz plyr-c41bb657ac490d032f2992845d21a457a7faedf1.zip |
Merge pull request #958 from friday/954
Fix the seek tooltip time difference from seek time
Diffstat (limited to 'src/js')
-rw-r--r-- | src/js/controls.js | 2 | ||||
-rw-r--r-- | src/js/listeners.js | 20 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/js/controls.js b/src/js/controls.js index 8a160864..3f720925 100644 --- a/src/js/controls.js +++ b/src/js/controls.js @@ -539,7 +539,7 @@ const controls = { // Calculate percentage let percent = 0; - const clientRect = this.elements.inputs.seek.getBoundingClientRect(); + const clientRect = this.elements.progress.getBoundingClientRect(); const visible = `${this.config.classNames.tooltip}--visible`; const toggle = toggle => { diff --git a/src/js/listeners.js b/src/js/listeners.js index 167bee3c..e95c5e44 100644 --- a/src/js/listeners.js +++ b/src/js/listeners.js @@ -529,12 +529,30 @@ class Listeners { } }); + // Set range input alternative "value", which matches the tooltip time (#954) + on( + this.player.elements.inputs.seek, + 'mousedown mousemove', + event => { + const clientRect = this.player.elements.progress.getBoundingClientRect(); + const percent = 100 / clientRect.width * (event.pageX - clientRect.left); + event.currentTarget.setAttribute('seekNext', percent); + } + ); + // Seek on( this.player.elements.inputs.seek, inputEvent, event => { - this.player.currentTime = event.target.value / event.target.max * this.player.duration; + const seek = event.currentTarget; + // If it exists, use seekNext instead of "value" for consistency with tooltip time (#954) + let seekTo = seek.getAttribute('seekNext'); + if (utils.is.empty(seekTo)) { + seekTo = seek.value; + } + seek.removeAttribute('seekNext'); + this.player.currentTime = seekTo / seek.max * this.player.duration; }, 'seek', ); |