Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[css] 第62天 手动写动画最小时间间隔是多少,为什么? #276

Open
haizhilin2013 opened this issue Jun 16, 2019 · 6 comments
Labels
css css

Comments

@haizhilin2013
Copy link
Collaborator

第62天 手动写动画最小时间间隔是多少,为什么?

@haizhilin2013 haizhilin2013 added the css css label Jun 16, 2019
@xiangshuo1992
Copy link
Contributor

16.667ms?不是很懂题意,但是根据经验,我猜是1000ms/60FPS = 16.667ms/FPS

@wenyejie
Copy link

46ms? 就是像素更新的频率下限, 再低人眼已经辨别不出差距了

@yxkhaha
Copy link

yxkhaha commented Jun 17, 2019

  • 一般浏览器的刷新频率为每秒60次,所以最小事件间隔为 1/60*1000 约 16.7ms

@forever-z-133
Copy link

极简的动效,而非动画,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
Copy link

yuqingc commented Jul 1, 2019

手写动画推荐使用 requestAnimationFrame API,他会根据浏览器性能自动使用合理的间隔,而且时间远远比自己写时间间隔要准确(如果对动画精确度要求很高,setInterval 是不准的)。

@MrZ2019
Copy link

MrZ2019 commented Dec 30, 2020

  • 一般浏览器的刷新频率为每秒60次,所以最小事件间隔为 1/60*1000 约 16.7ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
css css
Projects
None yet
Development

No branches or pull requests

7 participants