Correct visible view calculations when using a wrapper element#38
Open
rsutphin wants to merge 2 commits intoeviltrout:masterfrom
Open
Correct visible view calculations when using a wrapper element#38rsutphin wants to merge 2 commits intoeviltrout:masterfrom
rsutphin wants to merge 2 commits intoeviltrout:masterfrom
Conversation
The previous expression (offset + wrapperTop) was only correct when the wrapped container was positioned at the top of the document. If the container was further down from the top of the document than the height of the last row, the last row would always be cloaked. The further down the container started, the more of the bottommost rows would always be cloaked. This was because "viewTop" was computed using document-relative coordinates, but was compared to a value (viewportBottom) that was clamped to the height of the container's content. This change uses a coordinate for viewTop which is relative to the scrolling container.
Incorporating wrapperTop into the calculated viewBottom shifts the computed bounds for all the views such that the first row is always found to be the topmost visible. Top put it another way, it prevents any of the views that scroll above the top from ever being cloaked when you're using a wrapper 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.
Both the find-top and find-bottom searches were incorrect (in different ways) for the case where you're scrolling the contents of one element (vs. the whole page). The details of the two problems are in the commit messages.
I believe that these changes will not affect the behavior in the full page scrolling case, but I have not tested that. (The change to find-top definitely will not affect full page scrolling — the value which is no longer added was always zero. The change to find-bottom effectively is substituting
position().topforoffset().top. I believe in the scrolling-the-whole-page case, these values are the same. In addition, the new find-bottom bounds computation now matches the find-top bounds computation, which further suggests to me that it's probably right.)