2013-10-12 103 views
1

我創建了一個事件,以便在用戶使用鼠標滾輪向下滾動時觸發。但是,用戶通過拖動滾動條向下滾動會發生什麼?確定用戶何時滾動使用滾動條向下滾動

我想通過拖動滾動條向下滾動時觸發相同的事件,就好像他正在使用鼠標滾輪向下滾動一樣。

這是我在搬運東西,現在的方式:

var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel" 
    $(window).bind(mousewheelevt, function(e){ 

     var evt = window.event || e 
     evt = evt.originalEvent ? evt.originalEvent : evt; 
     var delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta 


     if(delta > 0) { 
      // some code in the future if it's up 
     } 
     else{ 
     // some code if it's down (would like this block of code to be executed 
      when the user draggs down the scrollbar) 
      } 
    }); 

有什麼建議?

謝謝ina advance!

+0

你爲什麼不只是將它綁定到'$(window).on('scroll')'?我錯過了什麼嗎? – Sunyatasattva

+0

不知道,我沒有使用過,因爲我無法找到一種方法來確定每當我向下滾動。但現在我看到了一種方法,感謝minitech – kfirba

回答

1

而是結合過甜的瀏覽器特定的事件,請使用scroll

var lastScroll = 0; 

$(window).on({ 
    scroll: function() { 
     if(window.pageYOffset > lastScroll) { 
      // Scrolling down 
     } 

     lastScroll = window.pageYOffset; 
    } 
}); 

(如果你需要IE < 9的支持,順便說一句,這是document.documentElement.scrollTop

+0

如果他滾動到頁面的頂部,然後回到頁面的頂部,該怎麼辦?當它不會檢測到時,有一些向下滾動的範圍:o – kfirba

+0

如果我需要IE <9支持,我應該在哪裏注入這個'document.documentElement.scrollTop'? – kfirba

+0

@kfirba:不,它也應該檢測到。你應該做'var yOffset = window.pageYOffset || document.documentElement.scrollTop;'然後'if(yOffset> lastScroll)'和'lastScroll = yOffset'。 – Ryan