2015-03-02 100 views
0

如何统计jquery/javascript中的滚动鼠标? 像初始值0一样,向下滚动++ 1并向上滚动--1。 而不是-1。必须是积极的。如何统计jquery中的鼠标滚轮滚动

如果我滚动2次向下然后值将是2,然后滚动一次最多然后值是1。

+0

这[获取jQuery的鼠标滚轮事件(http://stackoverflow.com/questions/8189840/get-mouse-wheel-events一个可能的解决方案-in-jquery)有一些有用的答案。 – lshettyl 2015-03-02 13:15:03

回答

0

这里是你的问题

var scrollCount = 0, 
    latestScrollTop = 0, 
    doc = document.documentElement, 
    top = 0; 

// Bind window scroll event 
$(window).bind('scroll', function (e) { 
    top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0); 

    if (latestScrollTop < top) { 
     // Scroll down, increment value 
     scrollCount += 1; 
    } else { 
     // Scroll up, decrement value 
     scrollCount -= 1; 
    } 

    // Store latest scroll position for next position calculation 
    latestScrollTop = top; 
}); 
+0

新值会在滚动后存储在顶端? 对不对? //商店下一位置计算最新滚动位置 – 2015-03-02 13:15:50

+0

要确定我们是否向上或向下滚动,我们需要存储的下一个验证此值。滚动量需要的值是“scrollCount”。 – 2015-03-02 13:23:17

+0

这两种方法都适用于我 – 2015-03-02 13:43:55

0
scrollcount=0; 
$(document).ready(function(){ 
    $("div").scroll(function(){ 
    $("span").text(scrollcount+=1); 
    }); 
}); 
1
$(document).ready(function(){ 
    var scrollPos = 0; 
    var Counter = 0; 
    $(window).scroll(function(){ 
     var scrollPosCur = $(this).scrollTop(); 
     if (scrollPosCur > scrollPos) { 
      Counter -= 1; 
     } else { 
      Counter += 1; 
     } 
     scrollPos = scrollPosCur; 
    }); 
}); 

的代码进行比较的滚动条的位置。 scrollPos显示您向下移动滚动条的像素数量,它的初始值为0,因为它从顶部开始。

当您滚动页面时,scrollPosCur将首先保存滚动条的当前位置。之后,我们比较数值如何变化:

如果当前值大于保存的值,则表示滚动条已向下移动,因此您的Counter增加了1。 与此相似,当scrollPosCur小于scrollPos时,我们将Counter递减1

为了保持代码正常工作,我们保存当前值以便与将来的滚动事件进行比较。

+0

这是怎么回事:(scrollPosCur> scrollPos)? – 2015-03-02 13:08:00

+0

@JasjeetSingh:最终确定了答案。 – Tacticus 2015-03-02 13:27:49

+0

谢谢它适合我。 @Mike Vranckx的答案也有效。 – 2015-03-02 13:43:08

0
$(window).scroll(function() { 
     if ($(this).scrollTop() > 100) { 
      $('.scrollToTop').fadeIn(); 
     } else { 
      $('.scrollToTop').fadeOut(); 
     } 
    }); 

    //Click event to scroll to top 
    $('.scrollToTop').click(function() { 
     $('html, body').animate({ scrollTop: 0 }, 800); 
     return false; 
    });