一、不同浏览器的鼠标滚轮事件

首先,不同的浏览器有不同的滚轮事件。主要是有两种,onmousewheel(IE/Opera/Chrome支持,firefox不支持)和DOMMouseScroll(只有firefox支持)

另外在操作的过程中需要添加事件监听,兼容性写法

代码如下:

/*注册事件*/
if(document.addEventListener){
document.addEventListener('DOMMouseScroll',scrollFunc,false); // W3C
}
window.onmousewheel=document.onmousewheel=scrollFunc; // IE/Opera/Chrome

二、通过js事件event对象的返回数值判断滚轮上下

判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;

两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个值,detail只取±3,wheelDelta只取±120,其中正数表示为向上,负数表示向下。

代码如下:

<label for="wheelDelta">滚动值:</label>(IE/Opera)<input type="text" id="wheelDelta"/>
<label for="detail">滚动值:(Firefox)</label><input type="text" id="detail"/>
<script type="text/javascript">
  var scrollFunc = function(e){
  e = e || window.event;
  var t1 = document.getElementById("wheelDelta");
  var t2 = document.getElementById("detail");
  if( e.wheelDelta ){ // IE/Opera/Chrome
  t1.value = e.wheelDelta;
   }else if( e.detail ){ // Firefox
  t2.value = e.detail;
  }
  }
  /*注册事件*/
  if(document.addEventListener){
  document.addEventListener('DOMMouseScroll',scrollFunc,false); // W3C
  }
  window.onmousewheel=document.onmousewheel=scrollFunc; // IE/Opera/Chrome
</script>

效果如下:

aaarticlea/png;base64,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" alt="" />aaarticlea/png;base64,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" alt="" />

通过运行上述代码我们可以看到:

在非firefox浏览器中,滚轮向上滚动返回的数值是120,向下滚动返回-120。
而在firefox浏览器中,滚轮向上滚动返回的数值是-3,向下滚动返回3

代码部分如下,e.wheelDelta是判断是否为非firefox浏览器,e.detail为firefox浏览器

if(e.wheelDelta){   // IE/Opera/Chrome
t1.value=e.wheelDelta;
}else if(e.detail){ // Firefox
t2.value=e.detail;
}

JS鼠标滚轮事件解析的更多相关文章

  1. js鼠标滚轮事件

    不多说,直接上代码. //非ie document.body.onmousewheel = function(event) { event = event || window.event; conso ...

  2. JS鼠标滚轮事件详解

    鼠标滚轮事件 //兼容性写法,该函数也是网上别人写的,不过找不到出处了,蛮好的,所有我也没有必要修改了 //判断鼠标滚轮滚动方向 if (window.addEventListener)//FF,火狐 ...

  3. js鼠标滚轮事件兼容

    JavaScript鼠标滚轮事件 IE6.0首先实现了鼠标的滚轮事件,其良好的交互效果得到认可,随后Opera.chrome.safari等主流浏览器都实现了该效果,不过存在着很大的兼容问题. 大多数 ...

  4. JS 鼠标滚轮事件(mousewheel/DOMMouseScroll)

    onmousewheel (FireFox不支持此事件) // IE/Opera/Chrome/Safari document.body.onmousewheel = function(event) ...

  5. js鼠标滚轮事件上滚下滚判断

    onmousewheel <script> var scrollFunc = function (e){ //其实我一开始也不知道用啥 //console.log(e)我们可以打印一下 / ...

  6. js中鼠标滚轮事件详解

    js中鼠标滚轮事件详解   (以下内容部分内容参考了http://adomas.org/javascript-mouse-wheel/ ) 之前js 仿Photoshop鼠标滚轮控制输入框取值中已使用 ...

  7. js整频滚动展示效果(函数节流鼠标滚轮事件)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. js中的鼠标滚轮事件

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

  9. VC 鼠标滚轮事件控制绘图的问题

    问题描述: 在MFC中绘制数据曲线,通过鼠标滚轮来进行放大缩小操作.在使用滚轮事件时,发现如果数据量较大,会出现卡顿. 解决方案: 鼠标滚轮事件会进行重复绘图,考虑在鼠标滚轮结束之后再重绘: 在鼠标滚 ...

随机推荐

  1. vscode开发智能合约

    开发工具 EOS 开发终极神器-vscode (你绝对找不到的干货) lome · 2018年04月19日 · 最后由 18636292520 回复于 2018年09月15日 · 15672 次阅读 ...

  2. 以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约

    以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约 在上一篇文章中,我们使用Truffle自带的客户端Truffle Develop,在私有链上搭建并运行了官方提供的WebPack智能合 ...

  3. BZOJ 3790 神奇项链 hash/后缀自动机+贪心

    Description 母亲节就要到了,小 H 准备送给她一个特殊的项链.这个项链可以看作一个用小写字母组成的字符串,每个小写字母表示一种颜色. 为了制作这个项链,小 H 购买了两个机器.第一个机器可 ...

  4. nodejs笔记--express篇(五)

    创建一个express + ejs的项目 express -e testEjsWebApp cd testEjsWebApp npm install http://localhost:3000 Usa ...

  5. svn服务器 备份,迁移,部署方案

    这次做业务迁移,要从一个云厂商迁移到某云厂商,之前每天到全备svn排到用场了,需要搭建一个全新到svn服务并要做迁移,并实现我们开发机到时时代码同步 一.svn备份有很多种,优劣都不同,百度可查,我采 ...

  6. JS中通过数组的方式操作字符串 数组是个好东西 ....

    题目:使用JS将 var str="what are you nong sha lei",通过您的方法转换为"What Are You Nong Sha Lei" ...

  7. 11.22Daily Scrum(2)

    人员 任务分配完成情况 明天任务分配 王皓南 实现网页上视频浏览的功能.研究相关的代码和功能.984 数据库测试 申开亮 实现网页上视频浏览的功能.研究相关的代码和功能.985 实现视频浏览的功能 王 ...

  8. java---StringBuilder类的用法(转载)

    转载自http://blog.csdn.net/zi_jun/article/details/7624999 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在 ...

  9. iOS- 网络访问两种常用方式【GET & POST】实现的几个主要步骤

    1.前言 上次,在博客里谈谈了[GET & POST]的区别,这次准备主要是分享一下自己对[GET & POST]的理解和实现的主要步骤. 在这就不多废话了,直接进主题,有什么不足的欢 ...

  10. 3dContactPointAnnotationTool开发日志(二二)

      昨天是实现了显示GameObject子GameObject的选项卡功能,今天就是要让statusPanel可以控制它们的位置.旋转和缩放了.   没什么难的,对应选项卡绑定上对应的物体或子物体即可 ...