Add a handler to detect resizes of the scrolling element #26
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.
In moderately complex applications, the size of the
HTMLElement
containing our scrolling content can be affected by many other changes to the DOM. Every time ourHTMLElement
is resized, we need to make sure that we callGeminiScrollbar.update
. Trying to track each and every change to the DOM which results in a resize is difficult and fragile.This PR proposes the following solution: we overlay the
HTMLElement
with an invisible<object>
with 100% width and height. To this object, we can attach an eventlistener which will be called whenever the parent element is resized; we can then use that to callGeminiScrollbar.update
.This also makes the window resize event listener redundant.
We also provide a hook by which clients can be notified of resize events, with an
onResize
member in the constructor options.