UNPKG

@furman1331/page-scroller

Version:

Amazing plugin for creating smooth scroll on your website

57 lines (39 loc) 1.06 kB
import { state } from '../state' import { useLogger } from '../logger' import { reAdjustCurrentSection } from '../common' const logger = useLogger() let timeout let isResizing = false export function registerResizeEvents() { onResizeHandler() window.addEventListener('resize', onResizeHandler) } export function destroyResizeEvents() { resizeHandler() clearTimeout(timeout) window.removeEventListener('resize', onResizeHandler) } function onResizeHandler() { logger.info('Resize event has been triggered.') if (!isResizing) { resizeHandler() } isResizing = true clearTimeout(timeout) timeout = setTimeout(() => { resizeAction() isResizing = false }, 400) } function resizeAction() { state.isResizing = true resizeHandler() reAdjustCurrentSection() } function resizeHandler() { const height = window ? window.innerHeight : document.documentElement.offsetHeight setSectionsSize(height) } function setSectionsSize(height: number) { state.sections.forEach((section) => (section.element.style.height = `${height}px`)) }