2014-01-22 75 views
1

我試圖在網頁上scrollTo(),我想要一個按鈕來觸發scrollTo();它將滾動到窗體的頂部並突出顯示第一個輸入字段。jquery滾動到表單輸入

我的當前代碼有效,但屏幕快速閃爍。我試圖使用preventDefault()無濟於事。請參閱下面的代碼。

$(document).ready(function() { 
    $("#get-started").click(function (e) { 
     e.preventDefault(); 
     $('html, body').animate({ 
      scrollTop: $("#get-risk").offset().top 
     }, 2000); 
     $("#get-started-apply-now-form [name='last_name']").focus(); 
    }); 
}); 
+0

而不是使用'.animate()',你可以使用'.scrollTo()'嗎? http://flesler.com/jquery/scrollTo/ – ntgCleaner

回答

6

當對某個元素進行聚焦時,瀏覽器會滾動到該元素,從而搞亂了動畫。

將焦點放在動畫回調中以避免它。

$(document).ready(function() { 
    $("#get-started").click(function (e) { 
     e.preventDefault(); 
     $('html, body').animate({ 
      scrollTop: $("#get-risk").offset().top 
     }, 2000, function() { 
      $("#get-started-apply-now-form [name='last_name']").focus(); 
     }); 
    }); 
}); 
+0

謝謝adeneo!通過將重點放在動畫回調中,它的效果非常好! –