You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Decouple the scroll event from the callback functions using requestAnimationFrames.
It’s a very, very, bad idea to attach handlers to the window scroll event.
Depending upon the browser the scroll event can fire a lot and putting code in the scroll callback will slow down any attempts to scroll the page (not a good idea). Any performance degradation in the scroll handler(s) as a result will only compound the performance of scrolling overall. Instead it’s much better to use some form of a timer to check every X milliseconds OR to attach a scroll event and only run your code after a delay (or even after a given number of executions – and then a delay).
functionfoo(event){console.log('foo');// The function receive the scroll event as parameter.console.log(event);// The function context is the scrolled element.console.log(this.scrollTop);}functionbar(){console.log('bar');}
Then, add some HTMLelements and its listeners to scrolling:
scrolling(document.querySelector('#box'),foo);
scrolling(window,bar);// orscrolling(bar);
API
scrolling(el, listener)
Adds an el with a listener to the collection.
el [optional] - A given HTMLElement to add to scroll.
listener - A given listener to execute when the given el is scrolled.
scrolling(el,listener);
scrolling#remove(el, listener)
Removes an el or its listener from the collection with the given el.