chore: complete update
This commit is contained in:
36
resources/js/modules/scrollfx/ScrollEngine.js
Normal file
36
resources/js/modules/scrollfx/ScrollEngine.js
Normal file
@@ -0,0 +1,36 @@
|
||||
// src/resources/js/scrollfx/ScrollEngine.js
|
||||
|
||||
class ScrollEngine {
|
||||
constructor() {
|
||||
this.triggers = new Set();
|
||||
this.viewportHeight = window.innerHeight;
|
||||
this._loop = this._loop.bind(this);
|
||||
|
||||
window.addEventListener('resize', () => {
|
||||
this.viewportHeight = window.innerHeight;
|
||||
});
|
||||
|
||||
requestAnimationFrame(this._loop);
|
||||
}
|
||||
|
||||
register(trigger) {
|
||||
this.triggers.add(trigger);
|
||||
}
|
||||
|
||||
unregister(trigger) {
|
||||
this.triggers.delete(trigger);
|
||||
}
|
||||
|
||||
clear() {
|
||||
this.triggers.clear();
|
||||
}
|
||||
|
||||
_loop() {
|
||||
this.triggers.forEach(trigger => {
|
||||
trigger.update(this.viewportHeight);
|
||||
});
|
||||
requestAnimationFrame(this._loop);
|
||||
}
|
||||
}
|
||||
|
||||
export default new ScrollEngine();
|
||||
Reference in New Issue
Block a user