js监听鼠标滚动事件并判断鼠标滚轮是向下还是向上。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>判断鼠标滚动向下还是向上</title>
<style>
.box {
width: 600px;
height: 600px;
border: 3px solid red;
overflow: auto;
margin-top: 20px;
}
.inner-box {
width: 200px;
height: 200px;
background: pink;
border: 2px solid green;
margin-left: 100px;
margin-top: 100px;
}
.sm-box {
width: 100px;
height: 100px;
background: #b1dfbb;
border: 1px solid blue;
}
</style>
</head>
<body>
<div class="box" id="box">
<div id="div1" class="inner-box">
<div class="sm-box"></div>
</div>
</div>
</body>
</html>
<script type="text/javascript">
var box = document.getElementById('box');
function onMouseWheel(ev) {/*当鼠标滚轮事件发生时,执行一些操作*/
var ev = ev || window.event;
var down = true; // 定义一个标志,当滚轮向下滚时,执行一些操作
down = ev.wheelDelta ? ev.wheelDelta < 0 : ev.detail > 0;
if (down) {
console.log('鼠标滚轮向下---------')
} else {
console.log('鼠标滚轮向上++++++++++')
}
if (ev.preventDefault) {/*FF 和 Chrome*/
ev.preventDefault();// 阻止默认事件
}
return false;
}
addEvent(box, 'mousewheel', onMouseWheel);
addEvent(box, 'DOMMouseScroll', onMouseWheel);
function addEvent(obj, xEvent, fn) {
if (obj.attachEvent) {
obj.attachEvent('on' + xEvent, fn);
} else {
obj.addEventListener(xEvent, fn, false);
}
}
</script>