Optimize back scrolling functionality#8192
Open
Sujaicodes wants to merge 1 commit intosegmentio:developfrom
Open
Optimize back scrolling functionality#8192Sujaicodes wants to merge 1 commit intosegmentio:developfrom
Sujaicodes wants to merge 1 commit intosegmentio:developfrom
Conversation
Refactor scroll handling to use a single optimized listener and improve component handling.
✅ Deploy Preview for segment-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refactor scroll handling to use a single optimized listener and improve component handling.
Proposed changes
Refactored the scroll handling logic to use a single shared scroll event listener instead of assigning window.onscroll inside a loop.
Cached the list of components using querySelectorAll once to avoid repeated DOM queries.
Moved scroll state computation outside of component iteration to prevent redundant calculations.
Used classList.toggle for cleaner and more efficient class management.
Added a passive scroll event listener to improve browser scroll performance.
Simplified component click handling while keeping the existing typewriter.scrollToTopClicked() analytics event and smooth scrolling behavior.
These changes improve performance, maintainability, and correctness, especially when multiple components use the data-back-scrolling attribute.
Merge timing
ASAP once approved.
The changes are backward-compatible and do not modify existing behavior or analytics events.
Related issues (optional)
None.
This change focuses on internal performance and code structure improvements for the scroll handling logic.