UNPKG

uikit

Version:

UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.

33 lines (27 loc) 796 B
import { on } from 'uikit-util'; export default { connected() { registerScrollListener(this._uid, () => this.$emit('scroll')); }, disconnected() { unregisterScrollListener(this._uid); }, }; const scrollListeners = new Map(); let unbindScrollListener; function registerScrollListener(id, listener) { unbindScrollListener = unbindScrollListener || on(window, 'scroll', () => scrollListeners.forEach((listener) => listener()), { passive: true, capture: true, }); scrollListeners.set(id, listener); } function unregisterScrollListener(id) { scrollListeners.delete(id); if (unbindScrollListener && !scrollListeners.size) { unbindScrollListener(); unbindScrollListener = null; } }