2015-09-02 27 views
1

我有一個單頁網站與多個錨點。我參考這個小提琴示例http://jsfiddle.net/kamikazefish/t6LLybx8/201/,用於在使用鼠標滾輪時將頁面推進到下一個錨點。有沒有一種方法可以控制速度,如果有人可以幫助將非常感激。請記住,我對代碼非常陌生,如果寫出來的話會很喜歡它,不僅僅是告訴我添加一個函數或者其他的東西,謝謝。這是Javascript。使用鼠標滾動到頁面上的下一個錨點緩慢

(function() { 
    var delay = false; 

    $(document).on('mousewheel DOMMouseScroll', function(event) { 
     event.preventDefault(); 
     if(delay) return; 

     delay = true; 
     setTimeout(function(){delay = false}, 200) 

     var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail; 

     var a= document.getElementsByTagName('a'); 
     if(wd < 0) { 
      for(var i = 0 ; i < a.length ; i++) { 
       var t = a[i].getClientRects()[0].top; 
       if(t >= 40) break; 
      } 
     } 
     else { 
      for(var i = a.length-1 ; i >= 0 ; i--) { 
       var t = a[i].getClientRects()[0].top; 
       if(t < -20) break; 
      } 
     } 
     $('html,body').animate ({ 
      scrollTop: a[i].offsetTop 
     }); 
    }); 
})(); 

回答

2

你可以只添加在此期間,您希望動畫像這樣運行的時間:

$('html,body').animate({ 
    scrollTop: a[i].offsetTop 
}, 1000); 

1000是在毫秒的時間。如果你想更慢地增加這個數字。

+0

humm ok完美的工作非常新的這個,現在我感到有點愚蠢謝謝:) –

+0

沒問題,我們都開始像這樣:-)如果你能標記我的答案爲最好的一個,如果它幫助你 – kremalicious

相關問題