鼠标滚动事件 - onmousewheel
1.Jquery-MouseWheel
jquery默认是不支持支持鼠标滚轮事件(mousewheel)
jquery MouseWheel下载:https://github.com/jquery/jquery-mousewheel/blob/master/jquery.mousewheel.js
然后就可以使用mousewheel和unmousewheel事件函数了
$('div.mousewheel_example').mousewheel(fn);
$('div.mousewheel_example').bind('mousewheel', fn);
Jquery MouseWheel兼容性
- FireFox浏览器使用DOMMouseScroll事件,其他(包括IE6)都是使用onmousewheel事件;
- FireFox中wheelDelta判断滚动方向,其值为120/-120,为负数的时候表示向下滚动,整数的时候向上滚动
- 其他:detail(属性)判断方向,返回值是3的整数倍(3/-3), 为正数表示向上滚动,负数向下滚动
- opera:同时拥有wheelDelta和detail,其中“detail”属性返回值和FF中的wheelDelta相同
使用实例
1 // jquery 兼容的滚轮事件
2 $(document).on("mousewheel DOMMouseScroll", function (e) {
3
4 var delta = (e.originalEvent.wheelDelta && (e.originalEvent.wheelDelta > 0 ? 1 : -1)) || // chrome & ie
5 (e.originalEvent.detail && (e.originalEvent.detail > 0 ? -1 : 1)); // firefox
6
7
8 if (delta > 0) {
9 // 向上滚
10 console.log("wheelup");
11 } else if (delta < 0) {
12 // 向下滚
13 console.log("wheeldown");
14 }
15 });
2.使用js原生实现滚轮事件
但是考虑到兼容性
IE下通过attachEvent实现事件监听
Chrome和FF通过addEventListener来实现事件监听
但是FF滚轮事件是:DOMAMouseSrcoll
其他浏览器:onmousewheel
| 事件监听 | 滚轮事件 | |
| Chrome | addEventListener | onmousewheel |
| IE | attachEvent | onmousewheel |
| FF | addEventListener | DOMAMouseSrcoll |
所以我自己封装了一个兼容各浏览器的方法
addEvent: function(obj, xEvent, fn) {
if (obj.attachEvent) {
obj.attachEvent('on' + xEvent, fn);
} else {
obj.addEventListener(xEvent, fn, false);
}
},
调用:
this.addEvent($(document),"mousewheel",callback); //其他
this.addEvent($(document),"DOMMouseScroll",callback); //FF
鼠标滚动事件 - onmousewheel的更多相关文章
- JS鼠标滚动事件
-----------------------------//鼠标滚动事件以下是JS临听鼠标滚动事件 并且还考虑到了各浏览器的兼容----------------------------------- ...
- 在FireFox浏览器上,用stopImmediatePropagation阻止冒泡鼠标滚动事件
楔子 是不是在火狐用stopPropagation不太满意 很久没有笑过又不知为何 既然不快乐又不喜欢这里 不如一路向西用stopImmediatePropagation(其实我对浏览器的兼容性看不顺 ...
- js进阶 12-6 监听鼠标滚动事件和窗口改变事件怎么写
js进阶 12-6 监听鼠标滚动事件和窗口改变事件怎么写 一.总结 一句话总结:滚动事件scroll(),浏览器窗口调整监听resize(),思考好监听对象. 1.滚动事件scroll()的监听对象是 ...
- vue组件添加鼠标滚动事件
在一个组件标签上加鼠标滚动事件,应该写成 @mousewheel.native
- JavaScript一个鼠标滚动事件的实例
<script type="text/javascript" src="./whenReady.js"></script> <!- ...
- HTML中鼠标滚轮事件onmousewheel处理
滚轮事件是不同浏览器会有一点点区别,一个像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法绑定DomMouseScroll事件,其他的浏览器滚轮事件 ...
- 鼠标滚动事件兼容性 wheel、onwheel
wheelEvent = "onwheel" in document.createElement("div") ? "wheel" : // ...
- js监控鼠标滚动事件
//滚动动画 windowAddMouseWheel(); function windowAddMouseWheel() { var scrollFunc = function (e) { e = e ...
- 解决ScrollViewer嵌套的DataGrid、ListBox等控件的鼠标滚动事件无效
C# 中,两个ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一个DataGrid.ListBox.Listview(控件本身有scrollviewer)的时候,我们本想要的效果 ...
随机推荐
- mysql 创建用户与授权、修改密码
mysql版本:5.6.35 1.创建用户 #foo表示你要建立的用户名,后面的123表示密码, #localhost限制在固定地址localhost登陆 CREATE USER foo@localh ...
- OOP in JS - Inheritance
Summary You cause a class to inherit using ChildClassName.prototype = new ParentClass();. You need t ...
- 1.1 java学习网站
1.http://www.rupeng.com/Courses/Index/51 2.https://www.zhihu.com/question/25255189
- jdbc_servlet基础增删改分页2(userinfo表的)
1.创建如下文件目录 2.导入MyBatis的jar文件 3.创建实体类 package com.entity; public class Userinfo { private Integer uid ...
- 配置 Apache 的虚拟主机
1.在host配置比如: 找到记事本以管理员的身份打开,然后文件->打开 C:\Windows\System32\drivers\etc 下面的hosts文件 127.0.0.1 www ...
- java 图形界面 邮件系统
将后台的邮件系统使用javaGUI编程来实现,让我们可以在桌面端直接控制邮件的收发功能. 一.实现邮箱的登陆功能 邮件系统使用smtp协议发送邮件,使用POP3协议或者IMAP协议来收取邮件.SMTP ...
- phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接。
phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接.您应该检查配置文件中的主机.用户名和密码,并确认这些信息与 MySQL 服务器管理员所给出的信息一致. 错误产生原因: 修改了 ...
- R绘图学习笔记(二)-
依照计量对比药物A和药物B的响应情况 #计量向量 dose <- c(20,30,40,45,60) #药物A的反应向量数据 drugA <- c(16,20,27,40,60) #药物B ...
- IIS的虚拟目录和子应用程序
一.虚拟目录 虚拟目录是指在发布的网站下建立一个虚拟子目录,指定一个固定的物理路径做为站点的应用路径. 1. 虚拟目录与父级站点共用一个应用程序池,网站Test是在D盘下建立了的虚拟目 ...
- Java 向SQL Server插入文件数据
package sqlserver; import java.util.Date; import java.util.UUID; import java.text.SimpleDateFormat; ...