![]() |
1
2
据我所知,你是对的。问题是,通过将图像从动画中间的数组中拉出,您生成了一个未渲染另一个图像(很可能是现在位于其位置的图像)的帧。这可以通过将上面的行更改为以下行来解决:
简短的解释是,超时会使拼接等待,直到当前动画功能完成后再触发。更多信息请访问 this helpful answer about using setTimeout to send functions down the stack . |
![]() |
2
0
虽然Evan的答案是针对旧浏览器的变通方法,但新浏览器支持 requestAnimationFrame 这是一种更清洁的防止闪烁的方法。 通过设置
只要浏览器准备好,就会执行框架绘制代码,并自动使用双重缓冲(在功能完成之前,不会向用户显示任何内容)。这对性能也有两个积极的副作用:
大多数浏览器已经支持这一点,但有些浏览器只支持特定于供应商的前缀。初始化例程中的这个polyfiller片段提供了兼容性,也为根本不支持它的浏览器提供了后备:
|
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |