2013-08-28 42 views
-1

我需要檢測鼠標滾輪的使用情況,但是當我添加事件監聽程序時,無論我如何擺弄它,它都會停止滾動整個頁面。我也嘗試使用Brandon的mousewheel插件無濟於事。我需要一些簡單的像這樣的實體模型代碼:檢測鼠標滾輪使用情況,但保持頁面滾動(javascript/jquery)

用戶都在使用鼠標滾輪: 布爾=真

如果布爾==真: 執行代碼,然後更改布爾回假,直到下一個鼠標滾輪使用。

我是新來的,所以不要太過分了,謝謝。

+0

你可以發佈你的小提琴嗎? – Niels

+0

所以當用戶首次使用滾動按鈕時,頁面應該保持滾動狀態。當他們再次使用時,他們應該停止滾動? – putvande

+0

不,我想在用戶使用不干擾頁面滾動的鼠標滾輪時觸發某個動畫。 –

回答

0

如果您的函數返回false,則取決於JavaScript框架,滾動的默認行爲可能會受到影響。

我建議只觸發一個自定義事件來聽你的滾動。

事情是這樣的:

$(document).mousewheel(function(e){ 
    $(document).trigger('MyApp/ScollHappened', iCanPassValues); 
}); 
在你的應用程序

,有點高,你可以不與真正的滾動事件干擾執行計算。

$(document).on('MyApp/ScrollHappened', function(event, ...){ 
    //Doing my calculations 
}) 
+0

不會在任何滾動事件上觸發,也不會在鼠標滾輪上顯式觸發? –

+0

你是對的;但它並沒有改變底層的東西,事實上,把你的應用程序的行爲放在自定義函數之外是很好的,這取決於返回的是什麼改變了你的頁面的行爲。 –

+0

這個頁面在我放之後仍然不滾動這個,.mousewheel阻止它這樣做。我們回到階段1 :( –

0

我覺得你需要這樣的東西。請記住,這也會檢測到帶有鍵盤的滾動(向下鍵)。如果你只是想檢測滾動:

$(window).scroll(function() { 

     //scroll 
); 

如果你想滾動之間推遲上下:

var lastScrollTop = 0; 
    $(window).scroll(function() { 
      var st = $(this).scrollTop(); 
      //downscroll  
      if (st > lastScrollTop){ 

      } 
      //upscroll 
      else{ 

      } 
     lastScrollTop = st; 

    ); 

對不起,我的答案是不是你在找什麼。使用Abdul Sy的答案,而是滾動,看看這個綁定鼠標滾輪事件 - http://www.jquerysdk.com/api/event-mousewheel

+0

不,我只需要mousewheel行動。 –

+0

http://jsfiddle.net/CvCc6/6/檢查這個小提琴 – thenewseattle