第62天 手动写动画最小时间间隔是多少,为什么?
Activity
xiangshuo1992 commentedon Jun 17, 2019
16.667ms?不是很懂题意,但是根据经验,我猜是1000ms/60FPS = 16.667ms/FPS
wenyejie commentedon Jun 17, 2019
46ms? 就是像素更新的频率下限, 再低人眼已经辨别不出差距了
yxkhaha commentedon Jun 17, 2019
forever-z-133 commentedon Jun 18, 2019
极简的动效,而非动画,animate.css 也能满足一定场景下的使用。
做动画嘛,大多会结合 css 的 transition 来做的,比如 clip.js 那种,或者 velocity.js / jquery.transit.js 这种。
但如果是 canvas 这类无 dom 动画,多半就是 requestAnimationFrame 了。
至于 1e3 / 60 这玩意,它与函数调用栈以及 event loop 有点关系,
最佳状态当然是它,但也会可能在两次渲染周期时才真正渲染。
具体可看下面这两个讲 event loop 的视频:
https://www.youtube.com/watch?v=8aGhZQkoFbQ
https://www.youtube.com/watch?v=u1kqx6AenYw
yuqingc commentedon Jul 1, 2019
手写动画推荐使用 requestAnimationFrame API,他会根据浏览器性能自动使用合理的间隔,而且时间远远比自己写时间间隔要准确(如果对动画精确度要求很高,setInterval 是不准的)。
smile-2008 commentedon Dec 30, 2020