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

var firefox = navigator.userAgent.indexOf('Firefox') != -1;

firefox ? img.addEventListener('DOMMouseScroll', MouseWheel, false) :

(img.onmousewheel = MouseWheel);

function MouseWheel(e) {

e = e || window.event;

if (e.stopPropagation) e.stopPropagation();

else e.cancelBubble = true;

if (e.preventDefault) e.preventDefault();

else e.returnValue = false;

}

我们来看个完整的代码

span {font:14px/20px 微软雅黑;}

#counter {

width:50px;height:20px;

border:1px solid #CCC;

background:#F9F9F9;

font:14px/20px Consolas;

text-align:center;

margin:10px;

}

使用鼠标滚轮调整数值大小

0

//判断浏览器

var isIE=navigator.userAgent.match(/MSIE (\d)/i);

isIE=isIE?isIE[1]:undefined;

var isFF=/FireFox/i.test(navigator.userAgent);

//获取元素

var counter=document.getElementById("counter");

//鼠标滚轮事件

if(isIE<9) //传统浏览器使用MouseWheel事件

counter.attachEvent("onmousewheel",function(){

//计算鼠标滚轮滚动的距离

//一格3行,每行40像素,所以除以120

var v=event.wheelDelta/120;

counter.innerHTML=counter.innerHTML*1+v;

//阻止浏览器默认方法

return false;

});

else if(!isFF) //除火狐外的现代浏览器也使用MouseWheel事件

counter.addEventListener("mousewheel",function(e){

//计算鼠标滚轮滚动的距离

var v=e.wheelDelta/120;

counter.innerHTML=counter.innerHTML*1+v;

//阻止浏览器默认方法

e.preventDefault();

},false);

else //奇葩的火狐使用DOMMouseScroll事件

counter.addEventListener("DOMMouseScroll",function(e){

//计算鼠标滚轮滚动的距离

//一格是3行,但是要注意,这里和像素不同的是它是负值

var v=-e.detail/3;

counter.innerHTML=counter.innerHTML*1+v;

//阻止浏览器默认方法

e.preventDefault();

},false);

js禁止鼠标滑轮_javascript实现禁止鼠标滚轮事件相关推荐

  1. js禁止鼠标滑轮_JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法

    本文实例讲述了JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法.分享给大家供大家参考,具体如下: 为什么会有人会使用ctrl+鼠标滚轮缩放网页?坚决禁止! 测试 var scrollFunc=fu ...

  2. android 监测鼠标滑轮,android2.3 监控鼠标滑动事件

    鼠标滑过图标时(ImageButton), 在button的onTouch事件中,能检测到鼠标的滑动. 1. ViewRoot.javad ispatchMotion(MotionEvent even ...

  3. mouseWheel in WindowsFormsHost(鼠标滚轮事件)

    在wpf应用程序中有WindowsFormsHost,可以使用wpf UI与winform或者 win32窗口进行交互,但是实际上,对于键盘事件及鼠标部分事件,是无法获取到的,如下所提的 http:/ ...

  4. js禁止鼠标滑轮_js实现鼠标滑动到某个div禁止滚动

    本文实例为大家分享了js实现鼠标滑动到某个div禁止滚动的具体代码,供大家参考,具体内容如下 项目中碰到一个场景就是当鼠标滑倒某个div的时候,滑动鼠标页面不再滚动. 这里主要是当鼠标滑动到该div时 ...

  5. js禁止 鼠标滚轮事件

    一段代码搞定 直接是禁止全局的鼠标滚轮事件  如果只需要单个模块 则把 window.onload = function() { window.onmousewheel = document.onmo ...

  6. 怎样用c语言禁止鼠标滑轮,如何禁用鼠标滚轮-禁用鼠标滚轮的教程 - 河东软件园...

    最近有位用户向小编询问,如何禁用鼠标的滑轮?大家可能会觉得很奇怪,为什么要禁用滑轮呢?滑轮的存在不就是为了翻页更加的方便么?其实在使用电脑的过程中,有的时候禁用滑轮能够带来很多的好处,既可以避免页面滚 ...

  7. HTML 鼠标绑定滚动条,js鼠标滑轮滚动事件绑定(兼容主流浏览器)

    今天尝试写基于jquery的滚动条,遇到了滚轮事件的兼容性问题,在firefox下和在IE下以及其它浏览器下,监听的事件有区别,查了下相关资料总结一下不同浏览器下鼠标滚轮事件兼容性的处理方式: 在 f ...

  8. Java怎么监听鼠标滑轮的转向_javascript监听鼠标滚轮事件浅析

    我们都见到过这些效果,用鼠标滚轮实现某个表单内的数字增加减少操作,或者滚轮控制某个按钮的左右,上下滚动.这些都是通过js对鼠标滚轮的事件监听来实现的.今天这里介绍的是一点简单的js对于鼠标滚轮事件的监 ...

  9. java响应鼠标滚轮事件_javascript滚动条响应鼠标滑轮的实现上下滚动事件

    实现鼠标滚动滚轮事件: var scrollFunc=function(e){ e=e || window.event; if(e.wheelDelta){//IE/Opera/Chrome if(e ...

最新文章

  1. Word查找的通配符和特殊字符!
  2. 分布式系统和集群的区别
  3. 购进不需要安装的生产设备_静压砖机设备生产环境的选择及安装前期事项分析...
  4. mysql安装后配置
  5. 参数化测试 junit_使用JUnit 5进行更清洁的参数化测试
  6. oracle 实现 自增主键功能
  7. linux重启切换内核,centos7切换启动内核与切换启动模式的讲解
  8. Flask+Mysql搭建网站之数据库问题
  9. java list 排序_java 对list进行排序
  10. linux下文件系统swap交换分区及dd命令详解(3)
  11. 慕课网仿去哪儿项目笔记--(四)-城市页面的优化
  12. Unity3D高级编程:主程手记
  13. win10备份为wim_经典好用系统安装备份工具一键恢复CGI-plus v5.0.0.4 增强版
  14. 大数据平台、从数仓 到 数据中台
  15. 网件路由器使用计算机mac,网件路由器怎么设置进行无线网卡MAC访问控制
  16. FFT算法(Java实现)
  17. win10系统回收站隐藏的方法
  18. 用Python告诉你深圳房租有多高?
  19. 88E1111 100BASE-T百兆工程(part1)
  20. 上传声音 微信小程序_微信小程序之----audio音频播放

热门文章

  1. 荣耀手机升级鸿蒙,荣耀手机怎么升级鸿蒙系统
  2. 老牌珠宝品牌加码直播,年轻人买单吗?
  3. 安卓之父的创业项目贱卖了!这个 31 岁的华人小哥接手,谷歌风投还投了钱!...
  4. 负一屏卡片快服务测试点击账号绑定无响应
  5. Android Studio 运行java程序
  6. 计算机卸载一个程序正确操作,小知识:为什么电脑卸载一个几G的软件要很久,手机却能瞬间完成...
  7. ASO优化之关于应用的搜索热词
  8. 出现错误:代理服务器拒绝连接的解决方法
  9. (1) iphone开发,自定义Window-based Application 模板及委托运行机制
  10. python八大应用领域