今天要来做的是播放速度控制器,可以透过游标移动控制播放速度
const speed = document.querySelector('.speed');
const bar = speed.querySelector('.speed-bar');
const video = document.querySelector('.flex');
function playRateChange(e){
console.log(e)
}
speed.addEventListener('mousemove', playRateChange);
第一步,不废话,先选定元素
然後是监听事件,这次监听的区域是下图最右边的长条区域
function speedRateChange(e){
const y = e.pageY - this.offsetTop;
const percent = y /this.offsetHeight;
const height = Math.round(percent * 100) + '%';
bar.style.height = height;
}
这边跟昨天的游标位置计算方式一样,是要以游标相对html文档的位置,减去元素外缘到页面顶端的距离,这是因为我们无法保证元素是在页面的最顶端
然後就可以计算元素内有颜色区块的长度了
function speedRateChange(e) {
// ...
const min = 0.5;
const max = 4;
const playbackRate = percent * (max - min) + min;
bar.textContent = playbackRate.toFixed(2) + 'x';
video.playbackRate = playbackRate;
}
接下来要处理播放的速度了
首先,先设定播放速度的最大/最小值
接着,要算出调整後的播放速度值,以最大/最小值的差,乘上长度百分比,再加上最小值就可以求得罗
最後,将元素的textContent
属性,以及将媒体的playbackRate
属性设为计算後的结果,就大功告成罗
此方法会使用定点小数表示法(fixed-point notation)来格式化数字
<<: 全端开发者必懂的「产品设计」——全端开发者内功 IV
>>: Day28:每天一个小练习 - JS30-13-Slide in on Scroll
GKE简介 今天要说的是GKE GKE是什麽?由於近年微服务崛起使用k8s的需求大增,衍生各大小公司...
Truth Table Let A and B be two Boolean variables. ...
这是我们今天要聊的内容,老样的,如果你已经可以轻松看懂,欢迎直接左转去看同事 Kyle 的精彩文章...
一开始要先看资料 # modules we'll use import pandas as pd i...
开会的时候,是有可能不留下会议记录的, 当会议做出了错误的决定,造成了破口, 就很难追究责任,甚至当...