简单兼容:

window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();

  

但是呢,并不是所有设备的绘制时间间隔是1000/60 ms, 以及上面并木有cancel相关方法,所以,就有下面这份更全面的兼容方法:

(function() {
var lastTime = 0;
var vendors = ['webkit', 'moz'];
for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || // Webkit中此取消方法的名字变了
window[vendors[x] + 'CancelRequestAnimationFrame'];
} if (!window.requestAnimationFrame) {
window.requestAnimationFrame = function(callback, element) {
var currTime = new Date().getTime();
var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));
var id = window.setTimeout(function() {
callback(currTime + timeToCall);
}, timeToCall);
lastTime = currTime + timeToCall;
return id;
};
}
if (!window.cancelAnimationFrame) {
window.cancelAnimationFrame = function(id) {
clearTimeout(id);
};
}
}());

  

最新文章

  1. testng参数化及用例排序
  2. Android Studio-设置快速修复错误提示代码
  3. android:#FFFFFFFF 颜色码解析
  4. Machine and Deep Learning with Python
  5. sql server 与oracle数据互导的一种思路--sql server链接服务器
  6. 让qq图标在自己的网站上显示方法
  7. RAC 11.2.0.4 安装 遇到 INS-06001
  8. Linux系统编程读书笔记
  9. Spring事务管理—aop:pointcut expression解析(转)
  10. 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#39;groups)VALUES(&#39;1&#39;,&#39;hh&#39;,&#39;hh@163.com&#39;,&#39;Boss&#39;)&#39; at line 1
  11. SSH(Spring+Struts2+Hibernate) of mappings(SSH三大框架的映射问题)
  12. openstack swift节点安装手册2-创建rings
  13. jeasyUI DataGrid 根据屏幕宽度自适应, 改变右侧滚动条Size
  14. git---远程仓库版本回滚
  15. disk_free_space
  16. 我的Java学习笔记-语法
  17. [CF1110H]Modest Substrings
  18. gVim中重新载入当前文件
  19. MySQL数据库查询优化建议
  20. 修改nginx的http响应头server字段

热门文章

  1. Ch01 基础 - 练习
  2. rabbitmq延迟队列demo
  3. C#中的装箱(inboxing)和拆箱(unboxing)(简单理解)
  4. Windbg程序调试系列2-内存泄露问题
  5. Hdu2602 Bone Collector (01背包)
  6. Android内存泄漏的检测流程、捕捉以及分析
  7. haproxy 初识
  8. Docker Swarm redis 集群搭建
  9. Python socket粘包解决
  10. 【题解】JSOIWC2019 Round2