2

これまでのところ、これはエラーメッセージに対してのみ適切に機能しています。ただし、これを成功メッセージでも機能させたいと思います。これは、連絡先フォームで送信ボタンが押されたときに発生するはずです。ページの右上にある [連絡先] をクリックしてスクロールします。

ここでテストできます。

エラーメッセージに使用しているjQueryは次のとおりです。

     $(document).ready(function() {
     $(".error:first").attr("id","errors");
    $("#errors").each(function (){
        $("html,body").animate({scrollTop:$('#errors').offset().top-175}, 1000);
    });
  });

同じ offset().top-175 で #success と #errors へのスクロールで動作するように変更する方法はありますか?

前もって感謝します!

4

3 に答える 3

4

あなたができる:

  $(document).ready(function() {
     var pos = null;
     if($("#contact-form #errors.visible").length > 0)
        pos = $('#errors').offset().top;

     if($("#contact-form #success.visible").length > 0)
        pos = $('#success').offset().top;

     if(pos != null)
         $("html,body").animate({scrollTop:pos-175}, 1000);
  });

そして、スクリプト「js/contact_script.js」を JQuery lib の後に宣言する必要があるという事実を修正します。

于 2013-01-28T20:47:01.733 に答える
0
$(document).ready(function () {
    var $elementToScrollTo;
    var $firstError = $(".error:first");
    if ($firstError.length > 0) {
        $firstError.attr("id", "errors");
        $elementToScrollTo = $firstError;
    }
    else {
        $elementToScrollTo = $("#success");
    }
    $("html,body").animate({
        scrollTop: $elementToScrollTo.offset().top - 175
    }, 1000);
});
于 2013-01-28T20:42:49.347 に答える