禁用滚动但使用JavaScript捕获滚动数据?

发布时间:2020-09-16 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了禁用滚动但使用JavaScript捕获滚动数据?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试阻止默认滚动行为,同时仍然确定用户尝试滚动的像素数.

我的目标是(在我的页面上的某个垂直位置)将导航元素固定到屏幕顶部并劫持滚动/滑动事件以在用户向上滚动时拉下移动菜单(因此上下移动所述元素) n个像素,取决于用户尝试滚动的像素数).

我知道在阻止原生行为方面存在的用户体验/可访问性问题,但这些诉讼需要西装想要的东西.

到目前为止,我有:

$('body').on({
 'mousewheel' : function(e) {
    e.preventDefault(); 
    e.stopPropagation();
 }
});

但我很难知道如何访问滚动的像素数(因为元素/滚动偏移不再是指南).

编辑:请注意,此问题专门询问滚动被阻止时有关鼠标/滚动操作的信息.不要认为这已被适当标记为重复.

解决方法

由于您使用的鼠标滚轮事件,这是浏览器所依赖的.这是因为它是 non-standard.不要使用它!

在Chrome(43.0)中,您可以获得具有不同值的不同属性:

e.originalEvent.wheelDelta: -120
e.originalEvent.wheelDeltaY: -120
e.originalEvent.deltaY: 100

在IE(11.0)中,您只能获得一个属性:

e.originalEvent.wheelDelta: -120

在Firefox(38.0.5)中,捕鼠轮事件根本不起作用.

解:
使用滚轮事件(MDN reference).此事件在所有浏览器中都具有e.originalEvent.deltaY属性.

总结

以上是编程之家为你收集整理的禁用滚动但使用JavaScript捕获滚动数据?全部内容,希望文章能够帮你解决禁用滚动但使用JavaScript捕获滚动数据?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!