Javascript 如何在浏览器中实现滚动劫持(scrolljacking)(react或vanilla js)?

Javascript 如何在浏览器中实现滚动劫持(scrolljacking)(react或vanilla js)?,javascript,reactjs,browser,scroll,Javascript,Reactjs,Browser,Scroll,我一直在尝试实现一些类似Typeform所做的事情(例如),用户不能滚动页面,而任何滚动触发器只会进入下一个问题 到目前为止,我已经发现向scroll事件添加处理程序是不够的。似乎我需要向滚轮、按键、滑动和其他东西添加处理程序,以实现不同的滚动行为 但我似乎无法解决所有的问题。特别是,滚轮滚动将具有预期的行为,然后继续滚动,我似乎无法取消该行为 (我知道这是一个UX反模式;无论如何我都在这么做。) 目前,我没有一个合理的代码示例,但如果没有人马上找到解决方案,我会添加一个。好的,所以我遇到的问题

我一直在尝试实现一些类似Typeform所做的事情(例如),用户不能滚动页面,而任何滚动触发器只会进入下一个问题

到目前为止,我已经发现向scroll事件添加处理程序是不够的。似乎我需要向滚轮、按键、滑动和其他东西添加处理程序,以实现不同的滚动行为

但我似乎无法解决所有的问题。特别是,滚轮滚动将具有预期的行为,然后继续滚动,我似乎无法取消该行为

(我知道这是一个UX反模式;无论如何我都在这么做。)


目前,我没有一个合理的代码示例,但如果没有人马上找到解决方案,我会添加一个。

好的,所以我遇到的问题是,在Chrome中,轮子事件默认是被动的,所以我必须将
被动:false
添加到事件处理程序中。当我有机会的时候,我会清理这个问题并发布一个答案。好的,所以我遇到的问题是,在Chrome中,轮事件默认是被动的,所以我必须向事件处理程序添加<代码>被动:false 。当我有机会的时候,我会把这件事清理干净,然后发布一个答案。