UNPKG

vevet

Version:

Vevet is a JavaScript library for creative development that simplifies crafting rich interactions like split text animations, carousels, marquees, preloading, and more.

35 lines 1.19 kB
import { Callbacks } from '../../../base/Callbacks'; import { cnAdd, cnRemove } from '../../../internal/cn'; import { doc, html } from '../../../internal/env'; import { addEventListener } from '../../../utils/listeners'; export function createPageLoad({ prefix, applyClassNames }) { const callbacks = new Callbacks(); let isLoaded = false; if (doc.readyState === 'complete') { setTimeout(() => handleLoaded(), 0); } else { addEventListener(window, 'load', () => handleLoaded()); } /** Callback on page loaded */ function handleLoaded() { const { body } = document; isLoaded = true; if (applyClassNames) { cnRemove(html, `${prefix}loading`); cnRemove(body, `${prefix}loading`); cnAdd(html, `${prefix}loaded`); } callbacks.emit('loaded', undefined); } /** Add a callback on page load */ function onLoad(callback) { if (isLoaded) { callback(); return () => { }; } return callbacks.on('loaded', () => callback()); } return { onLoad, getIsLoaded: () => isLoaded }; } //# sourceMappingURL=index.js.map