2014-01-06 51 views
1

如何在不滚动页面的情况下检测滚动方向(鼠标滚轮向上/向下)? 我的页面包装的高度为100%,所以没有内容可以滚动,但我需要从滚轮滚动方向。获取滚动方向而不滚动

由于谷歌地图的做法相同(使用mousehweel进行缩放而没有“滚动”页面),我不知道如何实现这一点。

+0

这里有信息关于如何做你想做的事情:http://www.adomas.org/javascript-mouse-wheel/ – Martin

回答

7

如果您正在谈论鼠标滚轮,您可以在窗口上使用addEventListenerevent.wheelDelta将有-120120增量,滚动向下和向上,分别为:

window.addEventListener('mousewheel', function(e){ 
    wDelta = e.wheelDelta < 0 ? 'down' : 'up'; 
    console.log(wDelta); 
}); 

JSFiddle

当然,你需要配合不同的浏览器。但我会留给你的。请参见here

+0

谢谢!工程就像一个魅力:) – Slevin

+0

这很好知道。 – enguerranws

+0

很高兴为我提供帮助(: – George

1

您可以将事件处理程序添加到mousewheel事件中,同时获取的不仅是event对象,还包含车轮增量。

// Using jQuery library 
$(function() { 
    $('body').bind('mousewheel', function(event, delta) { 
     // delta > 0 scroll up 
     // delta < 0 scroll down 
    }); 
}); 

纯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 
} 
+0

您可能想提及您使用jQuery,因为OP没有要求。 – George