UNPKG

animation-frame-polyfill

Version:

Polyfill requestAnimationFrame and cancelAnimationFrame

48 lines (37 loc) 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cancelAnimationFrame = exports.requestAnimationFrame = void 0; var prefix = ['webkit', 'moz', 'ms', 'o']; var requestAnimationFrame = function () { for (var i = 0, limit = prefix.length; i < limit && !window.requestAnimationFrame; ++i) { window.requestAnimationFrame = window[prefix[i] + 'RequestAnimationFrame']; } if (!window.requestAnimationFrame) { var lastTime = 0; window.requestAnimationFrame = function (callback) { var now = new Date().getTime(); var ttc = Math.max(0, 16 - now - lastTime); var timer = window.setTimeout(function () { return callback(now + ttc); }, ttc); lastTime = now + ttc; return timer; }; } return window.requestAnimationFrame.bind(window); }(); exports.requestAnimationFrame = requestAnimationFrame; var cancelAnimationFrame = function () { for (var i = 0, limit = prefix.length; i < limit && !window.cancelAnimationFrame; ++i) { window.cancelAnimationFrame = window[prefix[i] + 'CancelAnimationFrame'] || window[prefix[i] + 'CancelRequestAnimationFrame']; } if (!window.cancelAnimationFrame) { window.cancelAnimationFrame = function (timer) { window.clearTimeout(timer); }; } return window.cancelAnimationFrame.bind(window); }(); exports.cancelAnimationFrame = cancelAnimationFrame;