chore: complete update

This commit is contained in:
2025-07-17 16:24:20 +02:00
parent 899227b0a4
commit 64a7051137
1300 changed files with 85570 additions and 2756 deletions

View File

@@ -0,0 +1,45 @@
// modules/sticky-steps/index.js
import { Logger } from '../../core/logger.js';
import {registerFrameTask, unregisterFrameTask} from '../../core/frameloop.js';
export function init(config = {}) {
Logger.info('StickySteps init');
const defaultConfig = {
containerSelector: '[data-sticky-container]',
stepSelector: '[data-sticky-step]',
activeClass: 'is-sticky-active',
datasetKey: 'activeStickyStep'
};
const settings = { ...defaultConfig, ...config };
const containers = document.querySelectorAll(settings.containerSelector);
containers.forEach(container => {
const steps = container.querySelectorAll(settings.stepSelector);
const containerOffsetTop = container.offsetTop;
function update() {
const scrollY = window.scrollY;
const containerHeight = container.offsetHeight;
steps.forEach((step, index) => {
const stepOffset = containerOffsetTop + index * (containerHeight / steps.length);
const nextStepOffset = containerOffsetTop + (index + 1) * (containerHeight / steps.length);
const isActive = scrollY >= stepOffset && scrollY < nextStepOffset;
step.classList.toggle(settings.activeClass, isActive);
if (isActive) {
container.dataset[settings.datasetKey] = index;
}
});
}
registerFrameTask(`sticky-steps-${container.dataset.moduleId || Math.random()}`, update, { autoStart: true });
});
}
export function destroy() {
unregisterFrameTask('sticky-steps');
}