2015-03-02 98 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; 
    });