【JS兼容性问题】鼠标滚轮事件的兼容性写法

                 【JS兼容性问题】鼠标滚轮事件的兼容性写法

       我们给一个元素绑定鼠标滚轮事件时不同的浏览器可能实现不了绑定鼠标滚轮事件的方法,绑定的方法也很多,如:

onmousewheel():DOM0级事件绑定,给元素绑定鼠标滚轮事件。

用 addEventListener("DOMMouseScroll",function(){}):DOM2级事件绑定给元素绑定鼠标滚轮事件。

不知道DOM0和DOM2的小伙伴请点击下方传送门了解。

https://blog.csdn.net/qq_36652405/article/details/87719373


首先来介绍onmousewheel();以下我给test这个div绑定了鼠标滚轮事件。

<body>
		<div id="test">
			test
		</div>
	</body>
	<script type="text/javascript">
		window.onload = function() {
			var testNode = document.querySelector("#test");
			//DOM0 绑定形式
			testNode.onmousewheel = function() {
				console.log("鼠标滚轮正在滚");
			}
		}
	</script>

开始测试onmousewheel() 在各大主流浏览器中是否支持:

IE:支持。                          

谷歌浏览器:支持。

火狐浏览器:不支持。

一片空白,控制台没有输出。

 

结论:火狐浏览器并不支持onmousewheel() 方法。


既然火狐浏览器并不支持onmousewheel();那么我们如果要在火狐浏览器中兼容鼠标滚轮事件,

那么就得用到addEventListener("DOMMouseScroll",function(){});

下面是兼容性写法,话不多说上代码:

<body>
		<div id="test">
			test
		</div>
	</body>

	<script type="text/javascript">
		window.onload = function() {
			var testNode = document.querySelector("#test");
			//火狐浏览器,DOM2级事件绑定形式
			if(testNode.addEventListener) {
				testNode.addEventListener("DOMMouseScroll", function() {
					console.log("鼠标滚轮正在滚2");
				})
			}
			//非火狐浏览器,DOM0 级事件绑定形式
			testNode.onmousewheel = function() {
				console.log("鼠标滚轮正在滚1");
			}
		}
	</script>

这样的兼容性写法不管是在火狐浏览器还是非火狐浏览器中,都能正常绑定鼠标滚轮事件。

 

如果我的文章可以帮到你的话,那我深感荣幸。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值