Skip to content

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

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

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

Activity

xiangshuo1992

xiangshuo1992 commented on Jun 17, 2019

@xiangshuo1992
Contributor

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

wenyejie

wenyejie commented on Jun 17, 2019

@wenyejie

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

yxkhaha

yxkhaha commented on Jun 17, 2019

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

forever-z-133 commented on Jun 18, 2019

@forever-z-133

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

yuqingc commented on Jul 1, 2019

@yuqingc

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

smile-2008

smile-2008 commented on Dec 30, 2020

@smile-2008
  • 一般浏览器的刷新频率为每秒60次,所以最小事件间隔为 1/60*1000 约 16.7ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @smile-2008@wenyejie@haizhilin2013@xiangshuo1992@forever-z-133

        Issue actions

          [css] 第62天 手动写动画最小时间间隔是多少,为什么? · Issue #276 · haizlin/fe-interview