我正在创建一个组件,它将包含动态元素列表,并且出于样式原因,我需要在粘性导航菜单中保留每个部分的标题。当用户向上或向下滚动部分列表时,我需要应用样式规则,并将相同的部分显示在菜单导航中,因此我尝试使用具有菜单部分引用的scrollIntoView。
我的内部工作和逻辑似乎按预期工作,但有一个问题-除非我检查页面或刷新页面,否则scrollIntoView函数不会在每个状态更改上执行。
为了简短明了,我已经将我的工作添加到codesandbox中。
如果您能提供任何帮助,我将不胜感激,因为我已经没有任何想法。
谢谢!
编辑:
如果我从scrollIntoViewOptions选项的behavior参数中删除“smooth”选项,则滚动行为似乎按预期工作。然而,它看起来有些跳跃。
我的内部工作和逻辑似乎按预期工作,但有一个问题-除非我检查页面或刷新页面,否则scrollIntoView函数不会在每个状态更改上执行。
const scrollTo = (ref) => {
ref.current.scrollIntoView({ behavior: "smooth", inline: "center" });
};
为了简短明了,我已经将我的工作添加到codesandbox中。
如果您能提供任何帮助,我将不胜感激,因为我已经没有任何想法。
谢谢!
编辑:
如果我从scrollIntoViewOptions选项的behavior参数中删除“smooth”选项,则滚动行为似乎按预期工作。然而,它看起来有些跳跃。
const scrollToMenu = (ref) => {
ref.current.scrollIntoView({ inline: "center", });
};
scrollIntoView
函数在启用behavior: smooth
时完全不起作用。当我移除smooth属性后,它可以正常工作,但这肯定不能提供良好的用户体验。你解决这个问题了吗? - MLyck