javascript中的onmousewheel事件处理
滚轮事件在不同浏览器会有一点点区别,一个像Firefox使用DOMMouseScroll ,FF也可以使用addEventListener方法绑定DomMouseScroll事件,其他的浏览器滚轮事件使用mousewheel,下面我来给大家具体介绍。
Firefox使用DOMMouseScroll,其他的浏览器使用mousewheel。滚动事件触发时Firefox使用detail属性捕捉滚轮信息,其他的浏览器使用wheelDelta。不知道为何在这个问题上其他厂商和微软的如此一致。
Firefox可以使用addEventListener方法绑定DomMouseScroll事件。elem.addEventListener(‘DOMMouseScroll’, func, false);IE和其他的主流浏览器可以使用传统的事件绑定模型。但不要使用IE专有的attachEvent方法,其他主流浏览器并不识别微软的这个方法。
♥IE 鼠标滚轮向上滚动是120,向下滚动是-120
♥Opera 鼠标滚轮向上滚动是120,向下滚动是-120
♥Chrome 鼠标滚轮向上滚动是120,向下滚动是-120
♥Safari 鼠标滚轮向上滚动是360,向下滚动是-360
♥Firefox 鼠标滚轮向上滚动是-3,向下滚动是3
1、IE/Opera属于同一类型,使用attachEvent即可添加滚轮事件。
/*IE注册事件*/
if(document.attachEvent){
document.attachEvent('onmousewheel',scrollFunc);
}
2、Firefox使用addEventListener添加滚轮事件
/*Firefox注册事件*/
if(document.addEventListener){
document.addEventListener('DOMMouseScroll',scrollFunc,false);
}
3、afari与Chrome属于同一类型,可使用HTML DOM方式添加事件:
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome
其中除Firefox外其余均可使用HTML DOM方式添加事件,因此添加事件使用以下方式
/*注册事件*/
if(document.addEventListener){
document.addEventListener('DOMMouseScroll',scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome
detail与wheelDelta
判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、 Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个 值,detail只取±3,wheelDelta只取±120,其中正数表示为向上,负数表示向下。
<!--onmousewheel-->
<p>
<label for="wheelDelta"> 滚动值:</label>(IE/Opera)
<input type="text" id="wheelDelta" />
</p>
<p>
<label for="detail"> 滚动值:(Firefox)</label>
<input type="text" id="detail" />
</p>
<script type="text/javascript">
var scrollFunc = function(e) {
// e是FF的事件。window.event是chrome/ie/opera的事件
var ee = e || window.event;
// console.log(ee); //可以看看ee.wheelDelta和e.detail在浏览器中的值;
var t1 = document.getElementById("wheelDelta");
var t2 = document.getElementById("detail");
if(ee.wheelDelta) { //IE/Opera/Chrome
t1.value = ee.wheelDelta;
} else if(ee.detail) { //Firefox
t2.value = ee.detail;
}
}
/*注册事件*/
if(document.addEventListener) {
//W3C FF
document.addEventListener('DOMMouseScroll', scrollFunc, false);
}
//IE/Opera/Chrome/Safari
window.onmousewheel = document.onmousewheel = scrollFunc;
</script>
。
javascript中的onmousewheel事件处理的更多相关文章
- [转]理解JavaScript中的事件处理
什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了.事件可能是用户在某些内容上的点击 ...
- 理解JavaScript中的事件处理
什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了.事件可能是用户在某些内容上的点击 ...
- 理解JavaScript中的事件处理 阻止冒泡event.stopPropagation();
原文地址:http://www.cnblogs.com/binyong/articles/1750263.html 这篇文章对于了解Javascript的事件处理机制非常好,将它全文转载于此,以备不时 ...
- 详解JavaScript中的事件处理
在漫长的演变史,我们已经告别了内嵌式的事件处理方式(直接将事件处理器放在HTML元素之内来使用),今天的事件,它已是DOM的重要组成部分,遗憾的是,IE继续保留它最早在IE4.0中实现的事件模型,以后 ...
- 关于javascript中的this关键字
this是非常强大的一个关键字,但是如果你不了解它,可能很难正确的使用它. 下面我解释一下如果在事件处理中使用this. 首先我们讨论一下下面这个函数中的this关联到什么. function doS ...
- javascript中函数的3个高级技巧
× 目录 [1]作用域安全 [2]惰性载入 [3]函数绑定 前面的话 函数对任何一门语言来说都是一个核心的概念,在javascript中更是如此.前面曾以深入理解函数系列的形式介绍了函数的相关内容,本 ...
- 译:DOM2中的高级事件处理(转)
17.2. DOM2中的高级事件处理(Advanced Event Handling with DOM Level 2) 译自:JavaScript: The Definitive Gu ...
- 理解JavaScript中的作用域和上下文
JavaScript对于作用域(Scope)和上下文(Context)的实现是这门语言的一个非常独到的地方,部分归功于其独特的灵活性. 函数可以接收不同的的上下文和作用域.这些概念为JavaScrip ...
- javascript 中的事件机制
1.javascript中的事件. 事件流 javascript中的事件是以一种流的形式存在的. 一个事件会也有多个元素同时响应. 有时候这不是我们想要的效果, 我们只是需要某个特定的元素相应我们的绑 ...
随机推荐
- .net core支持的操作系统版本
https://github.com/dotnet/core/blob/master/os-lifecycle-policy.md
- 使用Eclipse绑定Tomcat并发布应用
l 步骤1:获得服务器运行环境配置,Window/Preferences/Server/Runtime Environmen l步骤2:添加服务器 l步骤3:选择服务器在硬盘的地址,然后所有的都是确定 ...
- elemnt UI点击事件失效,得到tab的序号
在用element 的tab的时候发现 事件绑定没有作用 看了官网才知到内置有回掉函数 绑定的地方是 <el-tabs></el-tabs> <template> ...
- [转]Centos 查看端口占用情况和开启端口命令
http://www.cnblogs.com/xqzt/p/4919191.html 1.Centos 查看端口占用 比如查看 80 端口占用情况使用如下命令: lsof -i tcp:80 2.列出 ...
- [转]10 Awesome Indicator Applets for Ubuntu’s Unity Desktop
http://blogger.gtwang.org/2013/10/awesome-indicator-applets-for-ubuntus-unity-desktop.html http://ww ...
- ionic2程序调试
新手一枚,之前一直做.net开发,最近接触Ionic2,也没有人带,只能自己一点点抠文档,查资料.一直苦于无法直接调试打包发不好的app,只能在代码里面加上alert一点一点的抛出要看信息,感觉就像瞎 ...
- JVM及class文件加载问题-学习使人快乐4
今天看了些粗浅的JVM原理的知识 1.class文件编译过程: 词法分析 语法分析 源码 ---------Token流-------------语法树----------字节码 2.classloa ...
- BZOJ4456/UOJ#184[Zjoi2016]旅行者 分治 最短路
原文链接http://www.cnblogs.com/zhouzhendong/p/8682133.html 题目传送门 - BZOJ4456 题目传送门 - UOJ#184 题意 $n\times ...
- 038 lock wait timeout exceeded;try restarting transaction
场景:有两个会话,其中会话1在事务操作,会话2在等待这个事务操作完成,然后会有这个报错产生. 通过查询资料,在这里整理一下. 一:总结timeout参数的作用 1.操作 2.具体解释 1)connec ...
- 爬虫之 beautifusoup4
1. 使用方法 2.解析器 3. 详细用法 4. find_all方法 5. 遍历文档树