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.
34 lines
627 B
34 lines
627 B
var rafSchd = function rafSchd(fn) { |
|
var lastArgs = []; |
|
var frameId = null; |
|
|
|
var wrapperFn = function wrapperFn() { |
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { |
|
args[_key] = arguments[_key]; |
|
} |
|
|
|
lastArgs = args; |
|
|
|
if (frameId) { |
|
return; |
|
} |
|
|
|
frameId = requestAnimationFrame(function () { |
|
frameId = null; |
|
fn.apply(void 0, lastArgs); |
|
}); |
|
}; |
|
|
|
wrapperFn.cancel = function () { |
|
if (!frameId) { |
|
return; |
|
} |
|
|
|
cancelAnimationFrame(frameId); |
|
frameId = null; |
|
}; |
|
|
|
return wrapperFn; |
|
}; |
|
|
|
export default rafSchd;
|
|
|