1

IE のスクロール機能に問題があります。

ここでコードhttp://jsfiddle.net/VdNQL/

ここでの問題は、リンク(上部)をクリックすると特定の場所に移動することですが、移動後に一度だけシャックする前です。Firefox と Chrome で表示すると便利です。問題はjqueryだと思います。ここに私のjqueryがあります。

        $(document).ready(function(){            
        $(window).scroll(function(){
            if ($(this).scrollTop() > 50) {
                $('div').addClass("k");
            } else {
                $('div').removeClass("k");
            }
        }); 

   $("a").bind('click', function() {
    var hash = $(this).attr("href");
    $('html, body').animate({ scrollTop: $(hash).position().top - 50 }, 1000);
  });

  });

アドバイスありがとうございます。

4

3 に答える 3

4

リンク要素のデフォルトのアクションを停止するだけです.preventDefault()

$("a").bind('click', function(ev) {
    ev.preventDefault();

    var hash = $(this).attr("href");
    $('html, body').animate({ scrollTop: $(hash).position().top - 50 }, 1000);
});

http://jsfiddle.net/VdNQL/2/

于 2013-01-04T11:58:27.410 に答える
1

これは、hrefクリックも同時に機能しようとしているためです。デフォルトのahref動作を防止します。これにより、ジャーク/シェイクの動作が削除されました。

$("a").bind('click', function(event) {
    event.preventDefault();
    var hash = $(this).attr("href");
    $('html, body').animate({ scrollTop: $(hash).position().top - 50 }, 1000);
});
于 2013-01-04T11:59:32.777 に答える
-1

あなたのコードでは、ウィンドウのスクロールトップが 50 より大きいときにクラスkを div に追加しています。クラス k では、トップ1pxに設定しています。したがって、スクリプトは上部を 1px に設定してからアニメーションを開始します。それがIEでのシャッキングの理由であることを願っています。

于 2013-01-04T12:01:45.437 に答える