Improved scrolling on Autocompleter when necessary#34
Open
speckins wants to merge 2 commits intomadrobby:masterfrom
Open
Improved scrolling on Autocompleter when necessary#34speckins wants to merge 2 commits intomadrobby:masterfrom
speckins wants to merge 2 commits intomadrobby:masterfrom
Conversation
Element.scrollIntoViewIfNecessary() only scrolls the parent container if the element is not already entirely within view. This solves two related issues for autocomplete dropdowns when there are scrollbars. First, "changing direction" while scrolling through choices is no longer a jarring user experience. Second, when the autocomplete element is within a containing element with its own scrollbars, scrollIntoView would scroll the outer scroll bars, moving the LI.selected to the top and obscuring the INPUT element.
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.
Extends Element with .scrollIntoViewIfNecessary() which only scrolls the parent container if the element is not already entirely within view. This solves two related issues for Autocomplete dropdowns when there are scrollbars. First, if the user changes direction while scrolling through the choices, the selected LI jumps from the bottom to the top (or vice versa) of the dropdown. Second, when the autocomplete element is within a containing element with its own scrollbars, using scrollIntoView would scroll the outer scroll bars, moving the LI.selected to the top and obscuring the INPUT element. This fixes both of those problems.
I can supply a demo page if it would better illustrate.