gpt4 book ai didi

javascript - React onwheel 不执行现有的scrollintoview 但 onclick 能够

转载 作者:行者123 更新时间:2023-11-28 03:23:31 28 4
gpt4 key购买 nike

const Index = () => {
// Ref Links
const frefLinks = {
1: useRef(1),
2: useRef(2),
3: useRef(3),
4: useRef(4),
5: useRef(5),
};

const scrollLink = (i) => {
let frefLink = frefLinks[i];
return frefLink.current.scrollIntoView({
block: "start",
behavior: "smooth"
});
};

return (
<React.Fragment>
<style.globalStyle/>
<NavMenu
scrollToLinkA={() => { scrollLink(1) }}
scrollToLinkB={() => { scrollLink(2) }}
scrollToLinkC={() => { scrollLink(3) }}
scrollToLinkD={() => { scrollLink(4) }}
scrollToLinkE={() => { scrollLink(5) }}
/>
<Sect1 fref={frefLinks[1]} onWheel={e => e.deltaY <= 0 ? console.log('up') : scrollLink(2) }/>
<Sect2 fref={frefLinks[2]} onWheel={e => e.deltaY <= 0 ? scrollLink(1) : scrollLink(3) }/>
<Sect3 fref={frefLinks[3]} onWheel={e => e.deltaY <= 0 ? () => { scrollLink(2) } : () => { scrollLink(4) } }/>
<Sect4 fref={frefLinks[4]} onWheel={e => e.deltaY <= 0 ? scrollLink(3) :scrollLink(5) }/>
<Sect5 fref={frefLinks[5]} onWheel={e => e.deltaY <= 0 ? scrollLink(4) :console.log('down')}/>
</React.Fragment>
);
}

scrollToLinkA 到 E 是嵌套 div 的 onClick 事件。 它非常适合 onclick,onWheel 在该部分的嵌套 div 中是正确的。 div onWheel = {onwheel} 但是,尽管 console.log 仍然有效,但 onwheel 事件不会触发滚动功能。我尝试了正常调用该函数和通过 Sect3 轮子上的箭头,但仍然失败。

我在react+onwheel+scrollintoview上进行了足够的搜索,但我真的找不到任何适用的答案。我没有考虑 onscroll,只是 onwheel 就是我想要的。

我真的想重用scrollLink函数,而不是添加额外的窗口监听器事件或依赖项。请指教。

最佳答案

我无法判断scrollLink 函数是否不是由onWheel 调用的,但我可以100% 确定scrollLink 可以正常工作,因为它来自onClick。我将 console.log 放入scrollLink 中,它也会记录。

我有导航和部分。 nav的div的onClick触发scrollLink函数并且scrollintoview工作完美。现在我正在执行部分 div 的 onWheel 事件来触发相同的“scrollLink”函数,它没有响应,但 console.log 到处都在工作。

我无法再发表评论,所以我在这里发帖。

关于javascript - React onwheel 不执行现有的scrollintoview 但 onclick 能够,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58894491/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com