38 lines
1016 B
JavaScript
38 lines
1016 B
JavaScript
// modules/example-module/index.js
|
||
import { registerFrameTask, unregisterFrameTask } from '../../core/frameloop.js';
|
||
|
||
let frameId = 'example-module';
|
||
let resizeHandler = null;
|
||
|
||
export function init(config = {}) {
|
||
console.log('[example-module] init');
|
||
|
||
// z. B. Event-Listener hinzufügen
|
||
resizeHandler = () => {
|
||
console.log('Fenstergröße geändert');
|
||
};
|
||
window.addEventListener('resize', resizeHandler);
|
||
|
||
// Scroll- oder Frame-Logik
|
||
registerFrameTask(frameId, () => {
|
||
// wiederkehrende Aufgabe
|
||
const scrollY = window.scrollY;
|
||
// ggf. transformieren oder Werte speichern
|
||
}, { autoStart: true });
|
||
}
|
||
|
||
export function destroy() {
|
||
console.log('[example-module] destroy');
|
||
|
||
// EventListener entfernen
|
||
if (resizeHandler) {
|
||
window.removeEventListener('resize', resizeHandler);
|
||
resizeHandler = null;
|
||
}
|
||
|
||
// FrameTask entfernen
|
||
unregisterFrameTask(frameId);
|
||
|
||
// weitere Aufräumarbeiten, z.B. Observer disconnect
|
||
}
|