UNPKG

baseframe-js

Version:

Baseframe JS is a comprehensive suite of modular plugins and utilities designed for front-end development

27 lines (26 loc) 840 B
import $be from 'base-elem-js'; const defaultConfig = { immediate: false, delay: 100 }; export const debounceResize = (cb, namespace = 'debounceResize', immediate = false, delay = 100) => { const nm = namespace !== '' ? `.${namespace}` : ''; const events = [`resize${nm}`]; debounce(window, events, cb, { immediate, delay }); }; const debounce = (elem, event, cb, config) => { const $elem = $be(elem); const p = { ...defaultConfig, ...config }; let timer = null; $elem.on(event, (ev, elem) => { clearTimeout(timer); timer = setTimeout(cb, p.delay, ev, elem); }); if (p.immediate) { $elem.each((elem) => { const ev = new Event(typeof event === 'string' ? event : event[0]); setTimeout(cb, 0, ev, elem); }); } }; export default debounce;