滚轮事件是不同浏览器会有一点点区别,一个像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法绑定DomMouseScroll事件,其他的浏览器滚轮事件使用mousewheel,下面我来给大家具体介绍。

Firefox使用DOMMouseScroll,其他的浏览器使用mousewheel。滚动事件触发时Firefox使用detail属性捕捉滚轮信息,其他的浏览器使用wheelDelta。不知道为何在该问题上其他厂商和微软的如此一致。Firefox可以使用addEventListener方法绑定DomMouseScroll事件。

elem.addEventListener('DOMMouseScroll', func, false);IE和其他的主流浏览器可以使用传统的事件绑定模型。但不要使用IE专有的attachEvent方法,其他主流浏览器并不识别微软的这个方法。

<script type="text/javascript">// <![CDATA[var mouseWheel = document.getElementById('mouseWheel');if (mouseWheel.addEventListener) {mouseWheel.addEventListener('DOMMouseScroll', function(event) {event.target.innerHTML = event.detail;event.stopPropagation();event.preventDefault();}, false);}mouseWheel.onmousewheel = function(event) {event = event || window.event;mouseWheel.innerHTML = event.wheelDelta;event.returnValue = false;}// ]]>
</script>

测试之后得到如下的结论。

•Firefox 鼠标滚轮向上滚动是-3,向下滚动是3
•IE 鼠标滚轮向上滚动是120,向下滚动是-120
•Safari 鼠标滚轮向上滚动是360,向下滚动是-360
•Opera 鼠标滚轮向上滚动是120,向下滚动是-120
•Chrome 鼠标滚轮向上滚动是120,向下滚动是-120
有人在Safari下做了一些测试:”只是滚动一圈的话,值为+-0.1,如果滚动地稍微快点的话(多滚动几圈),这个值也会变大。 这是因为Mac OS下有鼠标滚轮加速功能。滚动一次,浏览器滚动1像素,滚动3次,浏览器却滚动30像素”。同时他也对Camino(基于Gecko的内核引擎)进行研究:“与Safari相似(+- 0.3 to +-Infinity),虽然使用了与firefox相同的内核引擎,但结果这个delta值却只在+-2.666666里浮动,无论滚动速度如何

例1 获取鼠标滚轮值,判断滚动方向

JavaScript获取鼠标滚轮值,这里的值只有“1”和“-1”两种情况,请选按着中轮滚动,激活后可以不按,直接滚动。程序根据取值可以判断出滚轮的滚动方向,是向上滚还是向下滚,在编写JS游戏的时候我们要用到本功能。

<html>
<head>
<title>JavaScript判断鼠标滚轮滚动方向- www.fengfly.com </title>
<script type="text/javascript">
function handle(delta) {var s = delta + ": ";if (delta <0)s += "您在向下滚……";elses += "您在向上滚……";document.getElementById('delta').innerHTML = s;
}//from www.fengfly.com
function wheel(event){var delta = 0;if (!event) event = window.event;if (event.wheelDelta) {delta = event.wheelDelta/120; if (window.opera) delta = -delta;} else if (event.detail) {delta = -event.detail/3;
    }if (delta)handle(delta);
}
if (window.addEventListener)
window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;
</script>
</head>
<body>
<div id="delta">滚动中轮试试~请选按着中轮滚动,激活后可以不按,直接滚动。 </div>
<p>shared by http://www.111cn.net</p>
</body>
</html>

转载于:https://www.cnblogs.com/pigtail/p/3396505.html

各浏览器中的鼠标滚轮事件处理相关推荐

  1. javascript编程题_JavaScript中的鼠标滚轮编程

    javascript编程题 In this article I'll describe cross-browser techniques for using the mouse wheel (or & ...

  2. 如何在HTML5页面中使用鼠标滚轮事件

    支持鼠标滚轮可以为HTML5网页增加更多的交互性.不仅是滚动页面,您还可以执行不同的操作,如放大或缩小. 查看鼠标滚轮演示页面- 大多数的浏览器都支持元素的"mousewheel" ...

  3. js中的鼠标滚轮事件

    ## 事件对象 event1 event事件对象,表示用来获取事件的详细信息,比如得到鼠标的横坐标:事件对象.clientX(clientX是可视区坐标)window.onclick = functi ...

  4. VM虚拟机中无法使用鼠标滚轮(罗技鼠标)

    主机系统是win10,vm版本是10.5,虚拟机是ubuntu18.04. 鼠标是罗技的鼠标,发现在虚拟机中鼠标的滚轮不可用,查找后发现,原来是主机系统中安装的罗技软件导致的. 按下图处理后(禁用平滑 ...

  5. 安装VMwareTools后虚拟机中的鼠标滚轮无法使用解决办法

    打开终端,输入: $ sudo gedit /etc/X11/xorg.conf 这个命令使系统以root权限打开鼠标配置文件/etc/X11/xorg.conf.把文件中的 Option " ...

  6. 隐去浏览器中当鼠标移到图片上跳出的工具栏

    <img galleryimg="no"> 或者 <head> <meta http-equiv="imagetoolbar" c ...

  7. Unity3d中ScrollView鼠标滚轮滚动慢或滚不动

    将ScrollRect的Scroll Sensitivity改大一些

  8. 解决chrome浏览器中鼠标滚轮滚动事件失效的问题

    今天遇到了一个html5页面由于开启了图片遮罩层在chrome浏览器中,鼠标滚轮上下滚动时,页面不动的问题,后查询相关资料后解决,具体方法是加入如下代码: <script type=" ...

  9. html如何设置滑轮效果,HTML中鼠标滚轮事件onmousewheel处理

    滚轮事件是不同浏览器会有一点点区别,一个像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法绑定DomMouseScroll事件,其他的浏览器滚轮事件 ...

最新文章

  1. 在高并发分布式情况下生成唯一标识id
  2. 著名模拟鼠标点击软件小点点被收购
  3. HTML5 API详解(4):最实用的API DeviceOrientation设备传感器
  4. 2.privite私有变量的意义
  5. 关于eclipse中maven项目的问题
  6. Activity的Launch mode详解 singleTask正解
  7. Oracle 闪回特性(Flashback Query、Flashback Table)
  8. 创业公司专题数据(包含stata多种模型代码)
  9. root魅族android6,魅族PRO6怎么ROOT ROOT权限获取方法教程
  10. 每日学习打卡-汇总处
  11. 精品化游戏《热血征途》掀起网页游戏大变革
  12. Android 中的转场动画及兼容处理
  13. zoj 3332 Strange Country II
  14. html怎么动态背景,HTML 动态背景
  15. 百度开放大数据平台接口,传统企业看到了新曙光。
  16. 靠谱的企业并购流程|塔米狗
  17. cobbler自动部署装机
  18. Android 安卓修改程序图标
  19. vim制作python3编辑器
  20. 数据库中间件Mycat诞生记2

热门文章

  1. smote算法_SMOTE过采样框架+逻辑回归模型案例
  2. java ecc signature_如何用python验证android/java的ECC签名
  3. python计算auc的代码_python是怎么计算auc指标的?
  4. python idle 常规命令_Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
  5. 信阳农林技术学院经纬度_信阳农林学院驻村工作队为扶贫村协调种苗助力美丽乡村建设...
  6. Java中SQL语句传向数据库
  7. NYOJ-独木舟上的旅行(贪心)
  8. shell连接远程mongodb数据库
  9. 决策树ID3和C4.5
  10. 阿里巴巴宣布成立半导体公司,要自主研发芯片