解析javascript中鼠标滚轮事件

   这篇文章主要给大家详细介绍了javascript中鼠标滚轮事件,图文并茂,十分的详细,有需要的小伙伴可以参考下。

  所有的现代浏览器都支持鼠标滚轮,并且在用户滚动滚轮时触发时间。浏览器通常使用鼠标滚轮滚动或缩放文档,但可以通过取消mousewheel事件来阻止这些默认操作。有一些互用性问题影响滚轮事件,但是编写跨平台的代码依旧可以行。除了Firefox之外的所有浏览器都支持“mousewheel”事件,但Firefox使用“DOMMouseScroll”,而3级DOM事件规范草案建议使用事件名“wheel”替代“mousewheel”。

  ?

1
2
3
4

document.body.onmousewheel = function(event){
event = event || window.event;
console.dir(event);
}

  Firefox不支持mousewheel

  ?

1
2
3

document.body.addEventListener("DOMMouseScroll",function(event){
console.dir(event);
})

  以下滚轮向下滚动是chrome和IE9下面控制台输出


  以下是滚轮向下滚动Firefox下面控制台输出


  从上面输出得出,可以使用非标准的DOMMouseScroll事件取代mousewheel,使用事件对象的detail属性取代wheelDetal。但是,detail属性值的缩放比率和正负符号不同于wheelDetal,detail值乘以-40和wheelDetal值相等。

  在除了FireFox之外的浏览器下,滚动的上下滚动与否是下面这个wheelDelta有关。


  根据测试,在我的win7系统下,无论IE7, IE10, Opera12,或者是safari5.1,每次往下滚动event.wheelDelta值都是-120.

  对于FireFox浏览器(Opera浏览器也有),判断鼠标滚动方向的属性为event.detail, 向下滚动值为3.


  需要注意的是,FireFox浏览器的方向判断的数值的正负与其他浏览器是相反的。FireFox浏览器向下滚动是正值,而其他浏览器是负值。

  ?

1
2
3
4
5
6
7

var isFirefox = (navigator.userAgent.indexOf("Firefox") !== -1);
if(isFirefox){
element.addEventListener("DOMMouseScroll",wheelHandler,false);
}
element.onmousewheel = wheelHandler;
//element.onwheel = wheelHandler; //DOM3级wheel事件,经过测试IE9还是不支持,但是谷歌和火狐都支持,在谷歌内有wheelDelta在火狐里面有detail
function wheelHandler(event){ event = event || window.event; var delta = event.wheelDelta || detail*-30; }

  以上所述就是本文的全部内容了,希望大家能够喜欢。

时间: 2024-09-03 06:13:25

解析javascript中鼠标滚轮事件的相关文章

解析javascript中鼠标滚轮事件_javascript技巧

所有的现代浏览器都支持鼠标滚轮,并且在用户滚动滚轮时触发时间.浏览器通常使用鼠标滚轮滚动或缩放文档,但可以通过取消mousewheel事件来阻止这些默认操作.有一些互用性问题影响滚轮事件,但是编写跨平台的代码依旧可以行.除了Firefox之外的所有浏览器都支持"mousewheel"事件,但Firefox使用"DOMMouseScroll",而3级DOM事件规范草案建议使用事件名"wheel"替代"mousewheel". d

JavaScript中鼠标滚轮事件实现代码

Firefox使用DOMMouseScroll,其他的浏览器使用mousewheel.滚动事件触发时Firefox使用detail属性捕捉滚轮信息,其他的浏览器使用wheelDelta.不知道为何在该问题上其他厂商和微软的如此一致.Firefox可以使用addEventListener方法绑定DomMouseScroll事件. elem.addEventListener('DOMMouseScroll', func, false);IE和其他的主流浏览器可以使用传统的事件绑定模型.但不要使用IE

html中鼠标滚轮事件onmousewheel的处理方法_javascript技巧

滚轮事件是不同浏览器会有一点点区别,一个像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法绑定DomMouseScroll事件,其他的浏览器滚轮事件使用mousewheel,下面我来给大家具体介绍. Firefox使用DOMMouseScroll,其他的浏览器使用mousewheel.滚动事件触发时Firefox使用detail属性捕捉滚轮信息,其他的浏览器使用wheelDelta.不知道为何在该问题上其他厂商和微软的如此一致.Firefox可

javascript 兼容鼠标滚轮事件_javascript技巧

这个事件在标准下和IE下是有区别的.firefox是按标准实现的,事件名为"DOMMouseScroll ",IE下采用的则是"mousewheel ".当然一行代码就解决了兼容问题 复制代码 代码如下: var mousewheel = document.all?"mousewheel":"DOMMouseScroll"; 事件属性,IE是event.wheelDelta,Firefox是event.detail 属性的方向

winform程序datagridview中鼠标滚轮事件的问题

问题描述 目标:实现datagridview的选中行跟随鼠标滚轮移动.1.实现鼠标滚轮滚动一格,datagridview的选中行上移或者下移一行.2.以向下滚动为例:如果到了当前页面的最下面一行,选中行始终保持为当前页面最下面一行,数据滚动.在网上搜了一下第一步已经实现了.问题:不知为什么当鼠标滚轮滚动时滚动条也跟着移动,滚轮滚动一下,滚动条移动三行.开发工具vs2005. 解决方案 解决方案二:怎么取消鼠标滚轮系统默认的滚动一格,datagridview下翻三行呢?

javascript监听鼠标滚轮事件浅析_javascript技巧

我们都见到过这些效果,用鼠标滚轮实现某个表单内的数字增加减少操作,或者滚轮控制某个按钮的左右,上下滚动.这些都是通过js对鼠标滚轮的事件监听来实现的.今天这里介绍的是一点简单的js对于鼠标滚轮事件的监听. 不同浏览器不同的事件 首先,不同的浏览器有不同的滚轮事件.主要是有两种,onmousewheel(firefox不支持)和DOMMouseScroll(只有firefox支持),关于这两个事件这里不做详述,想要了解的朋友请移步:鼠标滚轮(mousewheel)和DOMMouseScroll事件

openlayers2事件-如何在openlayers2中注册鼠标滚轮事件

问题描述 如何在openlayers2中注册鼠标滚轮事件 试过了这个map.events.register("mousewheel", null, function(){});貌似不行,有大神知道如何注册吗? 解决方案 自己解决了问题,好爽! 解决方案二: http://blog.3snews.net/space.php?uid=6358&do=blog&id=8098 解决方案三: 注册鼠标滚轮事件

javascript实现禁止鼠标滚轮事件_javascript技巧

平时我们兼容什么东西总是在调整低版本IE的兼容性,但是这回不是因为低版本浏览器不给力.而是因为火狐给力过头了,完全不顾其它浏览器的感受标新立异了.除了火狐之外,所有的浏览器都可以使用MouseWheel事件来处理鼠标滚轮的响应.但是火狐却偏偏不支持MouseWheel,而使用无厘头的DOMMouseScroll,这玩意儿除了火狐以外其它浏览器都不兼容.也就是说,对于鼠标滚轮事件的处理,火狐只能使用DOMMouseScroll.而非火狐则只能使用MouseWheel.这两种事件实现的原理不同,他们

Javascript中活用事件触发对象动作

现在基本上我很少在对象里面写事情触发行为了,因为感觉那样做相同的对象代码利用率太低,容易导致代码冗余. 从学习W3C标准以来,对于代码我好像养成了一种怪癖,能统一复用的,就不会多写一点东西,这样前台页面代码看起来会清爽很多,而效率也会成直线上升. 下面来讲一下最近一个项目里面比较有代表性的东西. (实例可以查看这里http://www.pplive.com/zh-cn/view.html) 程序代码 <script type="text/javascript"> <!