UNPKG

window-resize

Version:

Optimised window resize function using requestAnimationFrame

52 lines (42 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; /** * Resize function based from MDN * https://developer.mozilla.org/en-US/docs/Web/Events/resize */ var windowResize = function () { var savedCallback = null; var running = false; // run the actual callback function runCallbacks() { savedCallback(); running = false; } // fired on resize event function resize() { if (!running) { running = true; if (window.requestAnimationFrame) { window.requestAnimationFrame(runCallbacks); } else { setTimeout(runCallbacks, 66); } } } // adds callback to loop function addCallback(callback) { savedCallback = callback; } return { // public method to add additional callback add: function add(callback) { window.addEventListener("resize", resize); addCallback(callback); }, clear: function clear() { window.removeEventListener("resize", resize); } }; }(); var _default = windowResize; exports.default = _default;