| (function () { |
| var lastTime = 0; |
| var vendors = ['ms', 'moz', 'webkit', 'o']; |
| for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { |
| window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; |
| window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; |
| } |
| if(!window.requestAnimationFrame) |
| window.requestAnimationFrame = function (callback, element) { |
| var currTime = new Date().getTime(); |
| var timeToCall = Math.max(0, 16 - (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); |
| }; |
| }()); |