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
fix(IndexBar): allow active bottom anchor #10404
Conversation
🐂🐂 |
对的,我当时也觉得挺奇怪的😂 |
因为正常来说 active 的 anchor 只会出现在顶部,像这种在页面中间的 anchor 我们是不希望 active 显示的,最好能去掉 |
理解 |
可以的,我们会进行 review 和 merge |
在該情况一: 判断是否
2022-08-10.10.58.00.mov想請問的是這個 |
@LeoWangJ 可以单独开个 issue 哈 |
#10342
原因分析
原先的逻辑是通过滚动后触发
onScroll
,再根据rect.top
距离来判断匹配的Anchor
而实际上,最大的滚动的距离是 整个文档滚动高度 - 当前屏幕窗口高度,因此当文档滚动高度超过屏幕窗口高度时,点击最底部的
Anchor
无法触发onScroll
事件,也就无法点亮对应的Anchor
。另外一种情况是,初始位置在
A
直接点击Z
,此时的确会触发onScroll
事件,但如果Z
对应的内容不足一屏,则会导致Z
的下标无法滚动到顶部,也就无法被正确匹配到,最终可能是选中Y
。处理思路
针对这两种情况分别做处理:
情况一: 判断是否
当前滚动距离
===当前文档最大滚动距离
,如果满足则表示无法继续滚动触发onScroll
,则通过手动触发。情况二: 在触发点击或触摸滑动选择
Anchor
时,记录当前正确的selectActiveIndex
,触发onScroll
事件时,通过selectActiveIndex
获取到正确的下标。调整后效果