为啥鼠标放上去在移开,waitTime就无效,单步运动会立即执行一下,而不是应该重置waitTime时间,移开后在重新计算时间

发布于 2020-10-26 15:41
共1个回答
OI
游客oiHIeZ

我的理解是vue-seamless-scroll组件使用了requestAnimationFrame接口,而这个接口是这样的:

window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行

注意:若你想在浏览器下次重绘之前继续更新下一帧动画,那么回调函数自身必须再次调用window.requestAnimationFrame()

当鼠标移开之后vue-seamless-scroll组件会立即调用_startMove 然后调用_move,继而调用requestAnimationFrame()立即更新下一帧动画,然后再根据waitTime配置间隔一段时间后循环调用_move

回答问题