Javascript和jquery事件--鼠标滚轮事件WheelEvent
<1>js事件
滚轮事件在js中,不同浏览器还是有不同的,介于我只测试谷歌和火狐浏览器的情况,其他浏览器有待自行探索。有三种写法:
- target.onmousewheel = wheel; 谷歌浏览器支持,火狐浏览器不支持,网上说的是除火狐浏览器外都支持。
- target.addEventListener(‘wheel’,wheel);谷歌浏览器支持,火狐浏览器现在也支持了,网上说的是除火狐浏览器外都支持。
- target.addEventListener(‘DOMMouseScroll’,wheel)只有火狐浏览器支持。
在以上三种方法中,target.addEventListener(‘wheel’,function(){});是最通用的,3大概不怎么用了,如果需要兼容低版本的火狐浏览器你可以加上判断。火狐浏览器同时支持whell和DOMMouseScroll监听器,不支持onmousewheel,但是如果你为元素设置这两个监听器,它会触发两次。你如果同时为谷歌浏览器设置whell和onmousewheel,onmousewheel会失效,但是你为wheel绑定两个监听器是有效的。
在js中,除了设置监听器外,我们还需要了解到鼠标滚轮的方向,需要关注两个值:event.wheelDelta(正负120)(除了火狐),大多以负数向下,event.detail(正负3)(火狐浏览器特有),以正数为向下,下面是网上的一个通用判断函数。
//统一处理滚轮滚动事件
function wheel(event){
console.log(event);
var delta = 0;
if (!event) event = window.event;
if (event.wheelDelta) {//IE、chrome浏览器使用的是wheelDelta,并且值为“正负120”
delta = event.wheelDelta/120;
if (window.opera) delta = -delta;//opera取反处理
} else if (event.detail) {//FF浏览器使用的是detail,其值为“正负3”
delta = -event.detail/3;//因为IE、chrome等向下滚动是负值,FF是正值,为了处理一致性,在此取反处理
} if (delta)
handle(delta);
} //上下滚动时的具体处理函数
function handle(delta) {
if (delta <0){//向下滚动
console.log('向下滚动');
}else{//向上滚动
console.log('向上滚动');
}
}
<1>jq事件,相似,下面是一个兼容代码,引自https://www.cnblogs.com/xiangsj/p/6446109.html
$('#contain2').on("mousewheel DOMMouseScroll", function (e) { var delta = (e.originalEvent.wheelDelta && (e.originalEvent.wheelDelta > 0 ? 1 : -1)) || // chrome & ie (e.originalEvent.detail && (e.originalEvent.detail > 0 ? -1 : 1)); // firefox if (delta > 0) { console.log("wheelup"); } else if (delta < 0) { console.log("wheeldown"); }
参考:
Js
https://www.cnblogs.com/caoruiy/p/4694498.html
https://www.cnblogs.com/ysx215/p/7002338.html
https://blog.csdn.net/lijunlinlijunlin/article/details/40711437
jq
https://www.cnblogs.com/xiangsj/p/6446109.html
Javascript和jquery事件--鼠标滚轮事件WheelEvent的更多相关文章
- JavaScript中的鼠标滚轮事件详解
JavaScript中的鼠标滚轮事件详解/*Firefox注册事件*/ ~~~Firefox: addEventListener('DOMMouseScroll', handler, false)if ...
- jQuery禁用、开启鼠标滚轮事件
1.禁用鼠标滚轮事件 $(document).bind('mousewheel', function(event, delta) {return false;}); 2.开启鼠标滚轮事件,直接解绑事件 ...
- 鼠标滚轮事件MouseWheel
其实在大多数浏览器(IE6, IE7, IE8, Opera 10+, Safari 5+,Chrome)中,都提供了 "mousewheel" 事件.但杯具的是 Firefox ...
- js中鼠标滚轮事件详解
js中鼠标滚轮事件详解 (以下内容部分内容参考了http://adomas.org/javascript-mouse-wheel/ ) 之前js 仿Photoshop鼠标滚轮控制输入框取值中已使用 ...
- js整频滚动展示效果(函数节流鼠标滚轮事件)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JS鼠标滚轮事件详解
鼠标滚轮事件 //兼容性写法,该函数也是网上别人写的,不过找不到出处了,蛮好的,所有我也没有必要修改了 //判断鼠标滚轮滚动方向 if (window.addEventListener)//FF,火狐 ...
- js鼠标滚轮事件兼容
JavaScript鼠标滚轮事件 IE6.0首先实现了鼠标的滚轮事件,其良好的交互效果得到认可,随后Opera.chrome.safari等主流浏览器都实现了该效果,不过存在着很大的兼容问题. 大多数 ...
- JS鼠标滚轮事件解析
一.不同浏览器的鼠标滚轮事件 首先,不同的浏览器有不同的滚轮事件.主要是有两种,onmousewheel(IE/Opera/Chrome支持,firefox不支持)和DOMMouseScroll(只有 ...
- Qt事件系统之二:鼠标事件和滚轮事件
在Qt中,事件作为一个对象,继承自 QEvent 类,常见的有键盘事件 QKeyEvent.鼠标事件 QMouseEvent 和定时器事件 QTimerEvent 等,与 QEvent 类的继承关系图 ...
随机推荐
- HDU 2883 kebab
kebab Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 2883 ...
- 【v2.x OGE教程 12】 关卡编辑器帮助文档
] 关卡编辑器帮助文档 一.简单介绍 关卡编辑器用于游戏关卡界面元素的可视化编辑,包含元素的位置.尺寸以及其他自己定义属性.通过解析生成的数据文件就可以获取关卡信息,并能随时调整.以降低开发工作量,提 ...
- SQL Server 为代码减负之存储过程
存储过程能够用来提高数据库的查询效率.由于它事先被编译过.被储存于内存中,每次执行前.不必被从新编译,所以效率非常高. 存储过程是一组sql增删改查的集合,假设程序中的一个功能涉及到对数据库的 ...
- codeforce 571 B Minimization
题意:给出一个序列,经过合适的排序后.使得最小. 做法:将a升序排序后,dp[i][j]:选择i个数量为n/k的集合,选择j个数量为n/k+1的集合的最小值. 举个样例, a={1,2,3,4,5,6 ...
- session timer(一)
功能介绍 SIP并没有为所建立的会话定义存活机制. 虽然用户代理能够通过会话特定的机制推断会话是否超时,可是代理server却做不到这点. 如此一来.代理server有时会无法推断会话是否还是活动的. ...
- js -- canvas img 封装
鼠标 1.操作canvas 中的 img. 右键放大缩小,左键移动img. 2.拖动input type= range 改变图片的透明度 html 代码 <!DOCTYPE html> ...
- pip的认识
一.pip与python的关系:pip并不是一种语言,而是一个Python包管理工具,主要是用于安装 PyPI 上的软件包.安装好pip之后,使用pip install 命令即可方便的安装python ...
- Logistic Regression and Newton's Method
Data For this exercise, suppose that a high school has a dataset representing 40 students who were a ...
- 使用Java语言开发微信公众平台(五)——被关注回复与关键词回复
在上一篇文章中,我们实现了文本消息的接收与响应.可以在用户发送任何内容的时候,回复一段固定的文字.本章节中,我们将对上一章节的代码进行适当的完善,同时实现[被关注回复与关键词回复]功能. 一.微信 ...
- 实现CSS样式垂直水平完全居中
1.水平居中 a.内联元素(inline or inline-*)居中? 你可以让他相对父级块级元素居中对齐 .center-children { text-align: center; } b.块级 ...