鼠标滚动,解决IE8,火狐异常不支持问题event.preventDefault()

这篇博客详细介绍了如何使用JavaScript监听并处理鼠标滚轮事件,通过调整元素的高度来响应滚轮上滑和下滑操作。文章涵盖了跨浏览器的兼容性处理,包括使用`addEventListener`和`attachEvent`为`box1`元素绑定`DOMMouseScroll`和`mousewheel`事件,以及处理滚轮方向和防止默认滚动行为的方法。
摘要由CSDN通过智能技术生成
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<style type="text/css">
		#box1{
			width: 300px;
			height: 300px;
			background-color: green;
		}
		
		
	</style>
	<script type="text/javascript">
		window.onload=function(){
			
			//box1绑定单机响应函数
			var  box1=document.getElementById("box1")
			/*
			 * 当下滚,变短,反边长
			 * onmousewheel火狐不支持,火狐需要DOMMouseScroll
			 * 该事件要用addEventListener()函数绑定
			 */
			box1.onmousewheel=function(event){
				event=event||window.event
				/*
				 * event.wheelDelta 获取滚方向
				 * 上120,下-120
				 * 火狐:
				 * event.datail
				 * 3.-3
				 * 
				 */
				if(event.wheelDelta >0||event.datail>0){
					box1.style.height=box1.clientHeight-10+"px"
				}else{
					box1.style.height=box1.clientHeight+10+"px"
				}
				/*
				 * 当有滚动条时,会出现异常,若要在滚动时,滚动条不变,择return false即可
				 */
				event.preventDefault()&&event.preventDefault()//火狐可以用它
				return false
				/*
				 * IE8没有event.preventDefault()方法,要event.preventDefault()&&event.preventDefault()
				 * 有则继续,无责不执行
				 */
				
			};
			bind(box1,"DOMMouseScroll",box1.onmousewheel)
		
			function bind( obj,eventStr,callBack){
				//大部分
				if(obj.addEventListener){
					obj.addEventListener(eventStr,callBack,false);
				}else{
					//IE8及以下
				obj.attachEvent("on"+eventStr,function(){
					callBack()
//					修改this为绑定对象
				})
				
				}
			
		}
			}
	</script>
		

		
	
	<body>
		<div id="box1">
			我是box1
		</div>
		
		
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优价实习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值