You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
840 B
47 lines
840 B
"use strict";
|
|
|
|
exports.__esModule = true;
|
|
exports.raf = raf;
|
|
exports.doubleRaf = doubleRaf;
|
|
exports.cancelRaf = cancelRaf;
|
|
|
|
var _ = require("..");
|
|
|
|
/**
|
|
* requestAnimationFrame polyfill
|
|
*/
|
|
var prev = Date.now();
|
|
/* istanbul ignore next */
|
|
|
|
function fallback(fn) {
|
|
var curr = Date.now();
|
|
var ms = Math.max(0, 16 - (curr - prev));
|
|
var id = setTimeout(fn, ms);
|
|
prev = curr + ms;
|
|
return id;
|
|
}
|
|
/* istanbul ignore next */
|
|
|
|
|
|
var root = _.isServer ? global : window;
|
|
/* istanbul ignore next */
|
|
|
|
var iRaf = root.requestAnimationFrame || fallback;
|
|
/* istanbul ignore next */
|
|
|
|
var iCancel = root.cancelAnimationFrame || root.clearTimeout;
|
|
|
|
function raf(fn) {
|
|
return iRaf.call(root, fn);
|
|
} // double raf for animation
|
|
|
|
|
|
function doubleRaf(fn) {
|
|
raf(function () {
|
|
raf(fn);
|
|
});
|
|
}
|
|
|
|
function cancelRaf(id) {
|
|
iCancel.call(root, id);
|
|
} |