3

Web ページで を実行しようとしscrollTo()ていますが、ボタンでscrollTo();をトリガーしたいです。フォームの一番上までスクロールし、最初の入力フィールドを強調表示します。

現在のコードは機能しますが、画面がすぐに点滅します。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();
    });
});
4

1 に答える 1

12

要素にフォーカスすると、ブラウザがその要素までスクロールし、アニメーションが台無しになります。

これを回避するには、アニメーション コールバックにフォーカスを置きます。

$(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();
        });
    });
});
于 2014-01-22T19:32:03.580 に答える