45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
/**
|
|
* interact.js 1.10.27
|
|
*
|
|
* Copyright (c) 2012-present Taye Adeyemi <dev@taye.me>
|
|
* Released under the MIT License.
|
|
* https://raw.github.com/taye/interact.js/main/LICENSE
|
|
*/
|
|
|
|
let lastTime = 0;
|
|
let request;
|
|
let cancel;
|
|
function init(global) {
|
|
request = global.requestAnimationFrame;
|
|
cancel = global.cancelAnimationFrame;
|
|
if (!request) {
|
|
const vendors = ['ms', 'moz', 'webkit', 'o'];
|
|
for (const vendor of vendors) {
|
|
request = global[`${vendor}RequestAnimationFrame`];
|
|
cancel = global[`${vendor}CancelAnimationFrame`] || global[`${vendor}CancelRequestAnimationFrame`];
|
|
}
|
|
}
|
|
request = request && request.bind(global);
|
|
cancel = cancel && cancel.bind(global);
|
|
if (!request) {
|
|
request = callback => {
|
|
const currTime = Date.now();
|
|
const timeToCall = Math.max(0, 16 - (currTime - lastTime));
|
|
const token = global.setTimeout(() => {
|
|
// eslint-disable-next-line n/no-callback-literal
|
|
callback(currTime + timeToCall);
|
|
}, timeToCall);
|
|
lastTime = currTime + timeToCall;
|
|
return token;
|
|
};
|
|
cancel = token => clearTimeout(token);
|
|
}
|
|
}
|
|
var raf = {
|
|
request: callback => request(callback),
|
|
cancel: token => cancel(token),
|
|
init
|
|
};
|
|
export { raf as default };
|
|
//# sourceMappingURL=raf.js.map
|