Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add origin prop for <transition-group>, fix #8424 #9430

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

Justineo
Copy link
Member

@Justineo Justineo commented Feb 5, 2019

What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

The PR fulfills these requirements:

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

As described in #8424, <transition-group> now records the items' position relative to the viewport (via getBoundingClientRect()). While page scroll happens just before the items start to perform transition, it will look like that they are flashed out of the container and slowly move to their original position.

This PR added a new prop: origin for <transition-group>, which is a string value that indicates how we are gonna calculate the position of transition items. Available values are viewport (the current behavior) and document. When set to document, the position of the items are always calculated relative to the top left corner of the document element, which will retain their position in the document when page scroll occurs.

@Justineo
Copy link
Member Author

On second thought: we are not always performing page scroll on the root element. If the page scroll is triggered by an element other than the root element, this fix would fail. Perhaps we should provide a way for users to specify the “origin” element themselves?

@tmorehouse
Copy link

What about detecting the scrollParent of the element? walking up the DOM tree to find out which element is scrollable.

@Justineo
Copy link
Member Author

@tmorehouse The problem is that scroll doesn't have to be triggered on the closest scrollParent. We may have enum values like viewport/document/scrollParent or find a way to let users specify the origin manually.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants