Javascript Can';在mac上最新的Chrome版本(59)中不能阻止导航手势
无法完全禁用两个手指的滑动手势来浏览整个网站的浏览器历史,这对我来说是一个持续的烦恼。到目前为止,至少可以通过对mousewheel事件调用preventDefault()来防止这种行为 这在Chrome59中似乎不再起作用了 下面是如何复制它:Javascript Can';在mac上最新的Chrome版本(59)中不能阻止导航手势,javascript,google-chrome,gesture,macos-sierra,preventdefault,Javascript,Google Chrome,Gesture,Macos Sierra,Preventdefault,无法完全禁用两个手指的滑动手势来浏览整个网站的浏览器历史,这对我来说是一个持续的烦恼。到目前为止,至少可以通过对mousewheel事件调用preventDefault()来防止这种行为 这在Chrome59中似乎不再起作用了 下面是如何复制它: 在页面上的某个位置开始这个手势,然后取消它 从那以后,违约就没有效果了 有人能解决这个问题吗 例子 和Airtable都在其表视图内滚动时调用默认值。一开始它似乎起作用,但一旦识别出手势,然后至少取消一次(在表外,不调用“防止默认值”),阻止手势就不再
- 第一个使用overflow:scroll本机滚动。此处,只有当scrollLeft为0时,才能触发该手势
- 第二个具有附加的事件侦听器,该侦听器在每个鼠标滚轮事件上调用preventDefault。这会在一开始阻止这个手势,但一旦你在页面上的任何其他地方启动它,它就不再起作用了
- 最后还有第三个div,你可以随时开始这个手势
重新启动Chrome暂时解决了这个问题,但它会不断出现。我现在使用的是Chrom 69,但它仍然存在。您是否尝试过将其关闭并再次打开?查看我的答案 这是Chrome上的预期行为 如果您是开发人员,请尝试使用overscroll行为来修复它。 如果您是用户,请尝试禁用MacOS上的overscroll滑动 设置。请参阅您提供的线程。 For event.preventDefault()不是每个控制盘事件都可以取消的。
请告诉我你在开玩笑。编辑:OMG重新启动chrome确实解决了这个问题,所以重新启动chrome暂时解决了这个问题,但它总是会回来。我现在使用的是Chrom 69,但它仍然存在。有人找到了真正的解决办法吗?
Native Scrolling:
<div id="native-scrolling" class="box">
<div></div>
</div>
Prevent gesture by calling prevent default. Only works if you didn't start the gesture anywhere else, yet:
<div id="prevent-gesture" class="box"></div>
Just a normal div:
<div class="box"></div>
$('#prevent-gesture').on('mousewheel', function (event) {
event.preventDefault();
});
.box {
height: 100px;
width: 200px;
background: black;
}
#native-scrolling {
overflow: scroll;
}
#native-scrolling > div {
width: 200%;
height: 10px;
}