我在我的网站上为音频对象制作了一个简单的自定义进度条。 进度条工作正常,但是我注意到它非常卡顿。 我还注意到在Facebook和YouTube等网站上,他们的进度条过渡似乎异常流畅(观看任何视频,您都会知道我的意思)。
我认为解决这个问题的方法可能是使用一些巧妙的JavaScript和CSS,但最终它似乎很俗气,没有原因地消耗CPU,并且看起来实际上与以前完全相同。(这是我想出的解决方案):
setInterval(function(){
var rect = elapsedContainer.getBoundingClientRect();
var percentage = audio.currentTime / audio.duration;
elapsed.style.width = (percentage * rect.width) + "px";
}, 33); // 30fps
.elapsed-container{
width: 100%;
height: 10px;
background: grey;
}
.elapsed{
left: 0;
height: 100%;
background: red;
transition: width 33ms linear;
}
欢迎所有帮助,感谢。