JavaScript高级程序设计第25章(新兴的API)
2015-10-19 20:38
701 查看
一、requestAnimationFrame()
1.早期动画循环——使用计时器或循环间隔
编写动画循环的关键是知道延迟多长时间合适。一方面,循环间隔必须足够端,这样才能让不同的动画效果显得更平滑流畅;另一方面,循环间隔还要足够长,这样才能确保浏览器有能力渲染产生的变化。
大多数电脑的显示器刷新频率是60Hz(看了一下自己的电脑,确实是这样子的),大概相当于每秒钟重绘60次。大多数浏览器都会对重绘操作加以限制,不超过显示器的重绘频率,因为即使超过那个频率用户体验也不会有提升
因此,最平滑动画的最佳循环间隔是1000ms/60,约等于17ms。以这个循环间隔重绘的动画是最平滑的,因此这个速度最接近浏览器的最高限速。
但要记得计时器和循环间隔的缺点:不精确,得看浏览器是否空闲
2.循环间隔的问题
浏览器使用的计时器并非精确到毫秒级别,即使你优化了循环间隔,结果仍然只能接近你想要的效果
• IE8-的计时器精度为15.625ms
• IE9+为4ms
•
Firefox和Safari为10ms
•
Chrome为4ms
1.早期动画循环——使用计时器或循环间隔
编写动画循环的关键是知道延迟多长时间合适。一方面,循环间隔必须足够端,这样才能让不同的动画效果显得更平滑流畅;另一方面,循环间隔还要足够长,这样才能确保浏览器有能力渲染产生的变化。
大多数电脑的显示器刷新频率是60Hz(看了一下自己的电脑,确实是这样子的),大概相当于每秒钟重绘60次。大多数浏览器都会对重绘操作加以限制,不超过显示器的重绘频率,因为即使超过那个频率用户体验也不会有提升
因此,最平滑动画的最佳循环间隔是1000ms/60,约等于17ms。以这个循环间隔重绘的动画是最平滑的,因此这个速度最接近浏览器的最高限速。
但要记得计时器和循环间隔的缺点:不精确,得看浏览器是否空闲
2.循环间隔的问题
浏览器使用的计时器并非精确到毫秒级别,即使你优化了循环间隔,结果仍然只能接近你想要的效果
• IE8-的计时器精度为15.625ms
• IE9+为4ms
•
Firefox和Safari为10ms
•
Chrome为4ms
相关文章推荐
- javascript之DOM操作
- javascript入门
- JavaScript 开发的45个经典技巧
- HTML学习记录<八> :嵌入JavaScript的位置
- 通过json序列化方式在django下传递模型数据
- jsp el表达式
- 认识js中的function和this
- JS实现文本框和文本域获取焦点focus()时,光标在本文的末尾
- FastJson使用
- JavaScript的Ajax数据请求与浏览器兼容
- 本地部署ArcGIS API for JavaScript
- js中prototype用法(转)
- js去除字符串中重复的编号,并删除自己的编号
- js处理字符串的substr()slice()substring()match()replace()用法
- js中的fadeIn()
- js保留两位小数点
- JS转换Date日期格式
- JSON使用
- js固定在顶部
- js原生弹出窗