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 }());