Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无需滚动即可获得滚动方向_Javascript - Fatal编程技术网

Javascript 无需滚动即可获得滚动方向

Javascript 无需滚动即可获得滚动方向,javascript,Javascript,如何在不滚动页面的情况下检测滚动方向(鼠标滚轮向上/向下)? 我的页面包装器的高度为100%,因此没有要滚动的内容,但我需要鼠标滚轮的滚动方向 既然谷歌地图也这么做(使用鼠标weel进行缩放而不“滚动”页面),我想知道如何实现这一点 如果您正在谈论鼠标滚轮,可以在窗口上使用addEventListener事件。wheelDelta将具有-120或120的增量,分别用于向下和向上滚动: window.addEventListener('mousewheel', function(e){ w

如何在不滚动页面的情况下检测滚动方向(鼠标滚轮向上/向下)? 我的页面包装器的高度为100%,因此没有要滚动的内容,但我需要鼠标滚轮的滚动方向


既然谷歌地图也这么做(使用鼠标weel进行缩放而不“滚动”页面),我想知道如何实现这一点

如果您正在谈论鼠标滚轮,可以在窗口上使用
addEventListener
<代码>事件。wheelDelta将具有
-120
120
的增量,分别用于向下和向上滚动:

window.addEventListener('mousewheel', function(e){
    wDelta = e.wheelDelta < 0 ? 'down' : 'up';
    console.log(wDelta);
});
window.addEventListener('mousewheel',函数(e){
wDelta=e.wheelDelta<0?“向下”:“向上”;
控制台日志(wDelta);
});


当然,您需要适应不同的浏览器。但我会让你决定的。请参见

您可以向
鼠标滚轮
事件添加处理程序,不仅可以获取
事件
对象,还可以获取滚轮增量

// Using jQuery library
$(function() {
    $('body').bind('mousewheel', function(event, delta) {
       // delta > 0 scroll up 
       // delta < 0 scroll down
    });
});
//使用jQuery库
$(函数(){
$('body').bind('mousewheel',函数(事件,增量){
//增量>0向上滚动
//delta<0向下滚动
});
});
纯javascript:

document.onmousewheel = function(evt){
    console.log(evt) // take a look in your console at evt.wheelDeltaX, evt.wheelDeltaY
     //evt.wheelDeltaX is horizont scroll
     //evt.wheelDeltaY is vertical scroll
     //evt.wheelDelta is deltas x+y 

     // if evt.wheelDeltaY < 0 then scroll down, if >0 then scroll up
     // if evt.wheelDeltaX < 0 then scroll left, if >0 then scroll right
}
document.onmouseheel=函数(evt){
console.log(evt)//在控制台中查看evt.wheelDeltaX,evt.wheelDeltaY
//evt.wheelDeltaX是水平卷轴
//evt.wheelDeltaY是垂直滚动的
//evt.wheelDelta是三角形x+y
//如果evt.wheelDeltaY<0,则向下滚动;如果evt.wheelDeltaY>0,则向上滚动
//如果evt.wheelDeltaX<0,则向左滚动;如果evt.wheelDeltaX>0,则向右滚动
}

查看jQuery MouseMove
将以前的x y存储到变量中,并将其与当前的once进行比较,以确定鼠标指针的方向

我修改了Georges answer以使用现代浏览器。鼠标滚轮事件已过时,因此不再工作

以下代码段应适用于所有现代浏览器:

window.addEventListener('wheel',函数(e){
让wDelta=e.deltaY>0?'down':'up';
控制台日志(wDelta);

});这里是关于如何做你想做的事情的信息:谢谢!工作起来很有魅力:)很高兴能帮上忙(:正是我要找的,谢谢你可能想提到你正在使用jQuery,因为OP没有要求它。