requestAnimationFrame.js

 1 /* requestAnimationFrame.js
 2  * by zhangxinxu 2013-09-30
 3  */
 4 (function() {
 5     var lastTime = 0;
 6     var vendors = ['webkit', 'moz', 'ms', 'o'];
 7     for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
 8         window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
 9         window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || // name has changed in Webkit
10         window[vendors[x] + 'CancelRequestAnimationFrame'];
11     }
12 
13     if (!window.requestAnimationFrame) {
14         window.requestAnimationFrame = function(callback, element) {
15             var currTime = new Date().getTime();
16             var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));
17             var id = window.setTimeout(function() {
18                 callback(currTime + timeToCall);
19             }, timeToCall);
20             lastTime = currTime + timeToCall;
21             return id;
22         };
23     }
24     if (!window.cancelAnimationFrame) {
25         window.cancelAnimationFrame = function(id) {
26             clearTimeout(id);
27         };
28     }
29 }());

 

posted @ 2020-06-11 11:31  xlsdg  阅读(37)  评论(0)    收藏  举报