// Source: https://gist.github.com/paulirish/1579671 | |
(function () { | |
let lastTime = 0; | |
const vendors = ['ms', 'moz', 'webkit', 'o']; | |
for (let 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) { | |
const currTime = new Date().getTime(); | |
const timeToCall = Math.max(0, 16 - (currTime - lastTime)); | |
const id = window.setTimeout( | |
() => { callback(currTime + timeToCall); }, | |
timeToCall, | |
); | |
lastTime = currTime + timeToCall; | |
return id; | |
}; | |
} | |
if (!window.cancelAnimationFrame) { | |
window.cancelAnimationFrame = function (id) { | |
clearTimeout(id); | |
}; | |
} | |
}()); | |