滚轮事件——js
实现效果:
滚轮向上移动,变长; 滚轮向下移动,变短
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
#box1{
width: 100px;
height: 100px;
background-color: rosybrown;
}
</style>
<script>
window.onload = function(){
// 滚轮向上移动,变长
// 滚轮向下移动,变短
var box1 = document.getElementById("box1");
/*
onmousewheel:鼠标滚轮事件,滚轮滚动的时候触发
火狐不支持:使用的是DOMMouseScroll绑定滚动事件,通过addEventListener()来绑定——直接使用bind
*/
box1.onmousewheel = function(event){
event = event || window.event;
// event.wheelDelta可以获取滚轮滚动的方向
// wheelDelta=120 向上滚, wheelDelta=-120向下滚
// 只看方向,不看大小
// 在火狐中需要使用event.detail获取滚动的方向。
if(event.wheelDelta > 0 || event.detail < 0){
box1.style.height = box1.clientHeight - 10 + "px";
}else{
box1.style.height = box1.clientHeight + 10 + "px";
}
// 使用addEventListener()方法绑定响应函数,取消默认行为时不能使用return false需要使用event来取消默认行为
// IE8又不支持,所以采用如下方式,有就用,没有就不用。
event.preventDefault&&event.preventDefault();
/*
当滚轮滚动时,如果浏览器有滚动条,滚动条会随之滚动,这是浏览器的默认行为,如果不希望发生,则可以取消默认行为
*/
return false;//在onmousewheel 函数里面return。
};
bind(box1,"DOMMouseScrool",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 style="height: 2000px;">
<div id = "box1">
</div>
</body>
</html>