博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript鼠标滚轮事件兼容写法
阅读量:6332 次
发布时间:2019-06-22

本文共 1293 字,大约阅读时间需要 4 分钟。

1.mousewheel事件(兼容opera,chrome,safari,IE)

mousewheel事件对应的event对象包含一个wheelDelta属性。用户滚动鼠标滚轮时,wheelDelta的值是正负120的倍数。

值得注意的是,在opera9.5之前的版本,wheelDelta的正负号是颠倒的,这里不做考虑

一般情况下,监听wheelDelta的正负值,就可以确定鼠标滚轮的滚动方向。

document.addEventListener('mousewheel',function(event){	console.log( event.wheelDelta > 0 )},false)	复制代码

2.DOMMouseScroll事件(兼容FireFox)

FireFox支持一个名为DOMMouseScroll的类似事件,类比于mousewheel。不同的是,鼠标滚轮的信息保存在detail属性里面。还有一点,用户滚动鼠标滚轮时,detail的值是正负3的倍数。

document.addEventListener('DOMMouseScroll',function(event){	console.log( event.detail > 0 )},false)复制代码

3.跨浏览器兼容写法

var eventHandle = {	getEvent: function(event){		return event || window.event;	},	addEvent: function(element, type, handler){		if(element.addEventListener){			element.addEventListener(type, handler, false);		}		else if(element.attachEvent){			element.attachEvent('on'+type, handler);		}else{			element['on'+type] = handler;		}	},	getWheelDelta: function(event){		return event.wheelDelta ? event.wheelDelta : (-event.detail)*40;	}}function mouseHandle(event){	event = eventHandle.getEvent(event);	var delta = eventHandle.getWheelDelta(event);	console.log( delta )}eventHandle.addEvent(document, 'mousewheel', mouseHandle);eventHandle.addEvent(document, 'DOMMouseScroll', mouseHandle);复制代码

转载于:https://juejin.im/post/5cc7ab876fb9a0322758c75c

你可能感兴趣的文章
PBRT笔记(4)——颜色和辐射度
查看>>
CustomView的手势缩放总结
查看>>
linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
查看>>
CentOS yum安装mysql
查看>>
OceanBase笔记1:代码规范
查看>>
[Algorithms] Longest Increasing Subsequence
查看>>
MAC下GitHub命令操作
查看>>
springboot之filter/listener/servlet
查看>>
Thinkphp --- 去掉index.php
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构
查看>>
oracle故障解决
查看>>
tcpdump
查看>>
数据库内存结构
查看>>
利用Shell开发跳板机功能脚本案例
查看>>
51CTO的技术门诊谈OSSIM
查看>>
六年心路成长 —— 做自己
查看>>
Unix整理笔记——高级命令sed和awk——里程碑M10
查看>>
Linux系统详解 第六篇:系统的启动、登录、注销与开关机
查看>>
ios电话拨打进行监听电话状态
查看>>
京东基于Spark的风控系统架构实践和技术细节
查看>>