2014-05-21 135 views
-1

我想創建一個滾動效果與jQuery動畫,但只爲鍵盤用戶。我不希望頁面滾動鼠標用戶。以下是當前的代碼。我仍然有問題讓點擊功能實際上不滾動。jQuery animate scrolltop - 防止點擊

//scroll page with keyboard focus 
$(':focusable').on('focus', function() { 
    var ele = $(this); 
    $('html, body').stop().animate({ 
     scrollTop: ele.offset().top - 100 
    }, 500); 
}); 
//do not scroll page with clicking of mouse 
$(':focusable').on('click', function() { 
    var ele = $(this); 
    $('html, body').stop().animate({ 
     scrollTop: ele.offset().top - 0 
    }, 5000); 
}); 

我來最接近的是動畫時間更改爲5秒,任何高度,因爲我與對焦功能並沒有加入到滾動距離。任何幫助,將不勝感激。

+1

也許我不明白。你不能只刪除點擊綁定的第二個函數嗎? –

+1

你最好提供一個jsFiddle。爲什麼不是'focus'事件,你不試試'keyup'事件嗎?順便說一句,刪除點擊事件。確實,不知道你在這裏期待什麼 –

回答

0

我看着你的方法,A.沃爾夫。我一起刪除了點擊,並提出了這個解決方案。

//scroll page with keyboard focus 
$(':focusable').on('keyup', function(e) { 
    var keyCode = e.keyCode || e.which; 
    if (keyCode == 9) { 
     $('html, body').stop().animate({ 
      scrollTop: $(this).offset().top - 100 
     }, 500); 
    } 
}); 

感謝您的幫助。