检测表面专业设备上的deltaY

时间:2017-10-27 13:45:43

标签: javascript jquery

我有一个网站,我需要检测用户是否向上或向下滚动而不实际在页面上滚动。我目前的设置如下:

checkScrollDirection = function(event) {
    delta = event.originalEvent.deltaY;

    if ( delta < 0 ) {
        scrollDirection = 'up';
    } else {
        scrollDirection = 'down';
    }
}

这适用于其他所有内容,但显然像Surface pro这样的Microsoft设备不使用deltaY。有谁知道Surface pro用来检测它的鼠标滚动位置? 我目前无法检测到滚轮,滚动,鼠标滚轮或DOMMouseScroll事件,除非页面上有实际滚动,此页面没有。即使在滚动的页面上,我也无法让它返回deltaY的值,这是我用来检测没有窗口滚动的页面上鼠标滚动的值。

1 个答案:

答案 0 :(得分:0)

您可以将window.scrollY值存储在变量中,然后在每次滚动事件发生时进行比较。你可以试试这个。

var lastScrollPosition = 0;
window.onscroll = function() {
    var newScrollPosition = window.scrollY;

    if (newScrollPosition < lastScrollPosition){
        //upward - code here
    }else{
        //downward - code here
    }
    lastScrollPosition = newScrollPosition;
}