我有一个网站,我需要检测用户是否向上或向下滚动而不实际在页面上滚动。我目前的设置如下:
checkScrollDirection = function(event) {
delta = event.originalEvent.deltaY;
if ( delta < 0 ) {
scrollDirection = 'up';
} else {
scrollDirection = 'down';
}
}
这适用于其他所有内容,但显然像Surface pro这样的Microsoft设备不使用deltaY。有谁知道Surface pro用来检测它的鼠标滚动位置? 我目前无法检测到滚轮,滚动,鼠标滚轮或DOMMouseScroll事件,除非页面上有实际滚动,此页面没有。即使在滚动的页面上,我也无法让它返回deltaY的值,这是我用来检测没有窗口滚动的页面上鼠标滚动的值。
答案 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;
}