我尝试使用stepUp(step)
和stepDown(step)
使用缓动函数设置输入范围滑块的动画,并仅使用vanilla js中的requestAnimationFrame
。
我有大致以下设置:
let time;
const animateSliderUp = () => {
time = {
start : performance.now(),
total: 5000
}
requestAnimationFrame(tick);
}
const tick = now => {
time.elapsed = now - time.start;
const progress = time.elapsed / time.total;
const value = EasingFunctions.easeInQuad(progress);
console.log(value, time.elapsed);
if(progress < 1)
requestAnimationFrame(tick);
}
......这让我在总时间中占有一定比例。如果我可以用这个虚函数slider.slideTo(pos)
来控制滑块的位置,我可以解决这个问题,但由于我只能上下一定量,我无法解决这个问题。
这里的Boilerplate代码: https://glitch.com/~illustrious-caterpillar
欢迎任何建议。