这段时间的都是讲事件的,所以今天再来讲一个鼠标滚轮的事件。

要实现的功能是:

* 当鼠标滚轮向下滚动时,box1变长
* 当鼠标滚轮向上滚动时,box1变短

废话少说,代码奉上:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">#box1{width: 100px;height: 100px;background: red;}</style><script type="text/javascript">window.onload = function(){box1 = document.getElementById("box1");//绑定滚轮事件/** onmousewheel鼠标滚轮滚动事件,会在滚轮滚动时触发,但是火狐不兼容* 在火狐中需要使用DOMMouseScroll来绑定滚轮事件* 注意该事件需要addEventLister()来绑定* */box1.onmousewheel = function(event){alert("滚了")/** 当鼠标滚轮向下滚动时,box1变长* 当鼠标滚轮向上滚动时,box1变短* 判断鼠标滚轮滚动的方向* event.wheelDelta 可以获取鼠标滚轮滚动的方向* 向上滚120,向下滚-120* wheelDelta火狐不支持,所以使用* event.detail来获取滚动的方向* 向上滚-3,向下滚3*/event = event || window.event;if(event.wheelDelta>0 || event.detail<0){box1.style.height = event.clientHeight - 10 +"px"}else{box1.style.height = event.clientHeight + 10 +"px"}/** 当滚轮滚动时,如果浏览器有滚动条,滚动条会随之滚动,* 这是浏览器的默认行为,如果不希望发生,则可以取消默认行为。使用return false* 但是addEventListener()方法绑定响应函数,取消默认行为不能使用return false,需要使用event来取消默认行为* event.preventDefault();但是IE8不支持,不能直接调用。*/if(event.preventDefault){event.preventDefault()}return false;}//为火狐绑定滚轮事件
                bind(box1,'DOMMouseScroll',box1.onmousewheel)function bind(obj,eventstr,callback){if (obj.addEventListener){obj.addEventListener(eventstr,callback,false)}else{obj.attachEvent('on'+eventstr,function(){callback.call(obj);})}}}</script></head><body><div id="box1"></div></body>
</html>

 

转载于:https://www.cnblogs.com/caicaihong/p/9330407.html