2012-09-21 56 views
1

我實現了一個自定義的滾動條,你可以看到here理解。對於我的滾輪我已經使用ScrollTo。問題是我需要了解用戶何時使用我的自定義滾動條,以及何時使用鼠標或其他方式滾動,如鍵盤。我試過這個:如何,如果用戶使用的是自定義滾輪或鼠標滾動

$(window).scroll(function(){ 

}); 

但我的自定義滾動觸發此。這是我的頁面的結構:

<div class="page"> 

    <div id="scroller" class="news-scroller"> 
    <div ><span id="up"></span></div> 
    <div ><span id="down"></span></div> 
    </div> 

    <div class="news"> 
    </div> 
    <div class="news"> 
    </div> 
    .... 

這裏是我的自定義卷軸代碼:

var current = $(".news").eq(0); 

$("#down").click(function(){ 
    if(current.next().size() > 0) 
    { 
     current = current.next(); 
     $.scrollTo("#"+current.attr("id"), 800);  

    } 
    else if(current.next().size() <= 0) 
    { 
    return 
    } 
}); 

$("#up").click(function(){ 
    if(current.prev().size() > 0) 
    { 
     current=current.prev(); 
     $.scrollTo("#"+current.attr("id"), 800); 
    } 
    else if(current.prev().size() <= 0) 
    { 
     return; 
    } 
}); 
+1

在理論上做到這一點:檢查的KeyboardEvent(恩'.keyup')在''並檢查向上和向下箭頭鍵碼。你可以使用'$(window).scroll',但是你需要通過設置一個變量來區分你自己的滾動到「正常」滾動,例如,當你的功能滾動而不是滾動時。目前沒有時間爲您修復代碼,但是通過這種方式,您應該能夠找到一種方法。 –

回答

0

因爲可能有其他人找這個,這裏是結論:$(window).scroll()與發生的任何滾動事件發生無關,無論它是否使用鼠標或鍵盤或任何類型的滾動。唯一能以某種方式將他們從彼此區分開來的方法是在自定義滾動條中查找模式(例如,我的滾動條在特定時間內滾動特定距離),這不是一個非常準確的解決方案。

我嘗試的解決方案是在我的自定義滾輪來觸發自定義事件,這樣,當用戶在使用我的自定義滾輪,當沒有我能理解。

相關問題