概述

Window.requestAnimationFrame()方法告诉浏览器你希望执行动画,并且再下一次重绘之前要求浏览器调用一个特定的函数去更新动画。该方法把一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行。

注意:如果你想在浏览器下次重绘之前继续更新下一帧动画,那么回调函数自身必须再次调用Window.requestAnimationFrame()

当你准备更新你的动画的时候,你应该调用该方法。这会要求你的动画函数在浏览器下次重绘之前被调用。回调的频率一般是60次/秒,但通常会按照W3C的建议与大多数网络浏览器中的显示刷新率匹配。为了提高性能和电池寿命,因此在大多数浏览器里,当requestAnimationFrame() 运行在后台标签页或者隐藏的的<iframe> 里时,requestAnimationFrame() 会被暂停调用以提升性能和电池寿命。

回调函数会被传入DOMHighResTimeStamp参数,DOMHighResTimeStamp指示当前被 requestAnimationFrame() 排序的回调函数被触发的时间。在同一个帧中的多个回调函数,它们每一个都会接受到一个相同的时间戳,即使在计算上一个回调函数的工作负载期间已经消耗了一些时间。该时间戳是一个十进制数,单位毫秒,最小精度为1ms(1000μs)。

语法

window.requestAnimationFrame(callback);

参数

callback

下一次重绘之前更新动画帧所调用的函数(即上面所说的回调函数)。该回调函数会被传入DOMHighResTimeStamp参数,该参数与performance.now()的返回值相同,它表示requestAnimationFrame() 开始去执行回调函数的时刻。

返回值

一个 long 整数,请求 ID ,是回调列表中唯一的标识。是个非零值,没别的意义。你可以传这个值给 window.cancelAnimationFrame() 以取消回调函数。

范例

var start = null;
var element = document.getElementById('SomeElementYouWantToAnimate');
element.style.position = 'absolute'; function step(timestamp) {
if (!start) start = timestamp;
var progress = timestamp - start;
element.style.left = Math.min(progress / 10, 200) + 'px';
if (progress < 2000) {
window.requestAnimationFrame(step);
}
} window.requestAnimationFrame(step);

最新文章

  1. yii2 ActiveRecord多表关联以及多表关联搜索的实现
  2. iOS CALayer应用详解(2)
  3. Animation用法
  4. js&amp;jquery验证邮箱和手机号是否正确范例
  5. Oracle错误
  6. Hibernate -- 注解(Annotation)关系映射
  7. Spark学习笔记--Transformation 和 action
  8. MD5和SHA512Managed ——哈希算法
  9. Flex 自定义事件
  10. GitHub 入门不完全指南(未完待续)
  11. php面试题汇总四(基础篇附答案)
  12. python_如何通过实例方法名字调用方法?
  13. java~集合的介绍和使用
  14. C++ 中 double、 long double、long 和 long long
  15. python精进之路1---基础数据类型
  16. Java虚拟机内存分配详解
  17. 5个强大的Java分布式缓存框架
  18. python BeautifulSoup的简单使用
  19. LeetCode——9. Palindrome Number
  20. NodeJs使用Express框架开发时的快速调试方法

热门文章

  1. echarts 图点击事件
  2. 简单的节流函数throttle
  3. WEB渗透 - XSS
  4. vue2.0:项目开始,首页入门(main.js,App.vue,importfrom)
  5. Python3 + requests + unittest接口测试
  6. 使用C#+EmguCV处理图像入门(图像读取_显示_保存)二
  7. Html的总结(待完善)
  8. Python3学习之路~10.2 协程、Greenlet、Gevent
  9. 6. concat_ws用法
  10. 环境篇:VMware Workstation安装Centos7