fix(shims): add requestAnimationFrame shim for IE9 and Android
Fixes #4209
This commit is contained in:
parent
29f75c3c63
commit
4f56a01b3b
|
@ -99,3 +99,38 @@ if (!window.console.log) window.console.log = function () { };
|
||||||
if (!window.console.error) window.console.error = function () { };
|
if (!window.console.error) window.console.error = function () { };
|
||||||
if (!window.console.warn) window.console.warn = function () { };
|
if (!window.console.warn) window.console.warn = function () { };
|
||||||
if (!window.console.assert) window.console.assert = function () { };
|
if (!window.console.assert) window.console.assert = function () { };
|
||||||
|
|
||||||
|
//RequestAnimationFrame (IE9, Android 4.1, 4.2, 4.3)
|
||||||
|
/*! @author Paul Irish */
|
||||||
|
/*! @source https://gist.github.com/paulirish/1579671 */
|
||||||
|
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/
|
||||||
|
// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
|
||||||
|
|
||||||
|
// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel
|
||||||
|
|
||||||
|
// MIT license
|
||||||
|
|
||||||
|
(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);
|
||||||
|
};
|
||||||
|
}());
|
||||||
|
|
Loading…
Reference in New Issue