File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed
28 - Video Speed Controller Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 1515 </ div >
1616
1717< script >
18+
19+ const video = document . querySelector ( 'video' )
20+ const speedBar = document . querySelector ( '.speed' )
21+ const speedSlider = document . querySelector ( '.speed-bar' )
22+
23+ const minSpeed = 0.4
24+ const maxSpeed = 4.0
25+
26+ speedBar . addEventListener ( 'mousedown' , leftButton ( setSpeed ) )
27+ speedBar . addEventListener ( 'mousemove' , leftButton ( setSpeed ) )
28+
29+ //
30+
31+ function setSpeed ( e ) {
32+ e . preventDefault ( )
33+ const ratio = e . offsetY / this . offsetHeight
34+ const playbackRate = speed ( ratio )
35+ speedSlider . style . height = `${ ratio * 100 } %`
36+ speedSlider . textContent = `${ playbackRate . toFixed ( 1 ) } ×`
37+ video . playbackRate = playbackRate
38+ }
39+
40+ //
41+
42+ function speed ( ratio ) {
43+ return minSpeed + ( maxSpeed - minSpeed ) * ratio
44+ }
45+
46+ function leftButton ( callback ) {
47+ return function ( e ) {
48+ if ( e . buttons & 1 ) return callback . call ( this , e )
49+ }
50+ }
51+
1852</ script >
1953</ body >
2054</ html >
You can’t perform that action at this time.
0 commit comments