fix: avatar cannot calculate the offset when display: none #15351
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.
First of all, thank you for your contribution! 😄
New feature please send pull request to feature branch, and rest to master branch.
Pull request will be merged after one of collaborators approve.
Please makes sure that these form are filled before submitting your pull request, thank you!
[中文版模板 / Chinese template]
🤔 This is a ...
👻 What's the background?
重现链接
上述链接有一个 Avatar 初始是
dispaly:none
的,然后通过点击显示,但是此时的偏移量和scale
是没有的,因为dispaly:none
的时候拿到元素的offsetWidth
是0
, 分母为0
算出来的scale
为-Infinity
, 不合法所以transform
加不上去, 导致头像文字位置不居中(可能字还大)💡 Solution
avatarChildren
的offsetWidth
为 0 时没必要计算 scale,。avatarDisplay
表示当前状态,如果avatarDisplay
为false
说明此时可能头像属于display:none
的状态,这样在下次 update 的时候起码需要有再次计算的机会 , 计算完成重置 state📝 Changelog description
☑️ Self Check before Merge
others