1

ページ アンカー間にスムーズなトランジションを追加しようとしています。

次のコードでは、トランジションは機能していますが、ブラウザの履歴はアンカー ナビゲーションを記憶していません。ブラウザの戻るボタンを使用すると失敗します。すべてを削除preventDefault()すると機能しますが、ページは前のページ位置からスクロールする前にターゲットタグのコンテンツで点滅します。

アドレスなどのプラグインを試しましたが、成功しませんでした。では、ブラウザの履歴を保持しながらアンカーをスクロールする簡単な方法は何ですか?

$('a').click(function(e) {
  e.preventDefault();

  var href = $(this).attr('href');
  $('html, body').animate({
     scrollTop: $(href).offset().top}, 'slow', 'swing'
  );
});
4

2 に答える 2

2

この質問で解決。その答えは、優れた jQuery ライブラリであるSmoothanchorsを暗示しています。

于 2012-11-23T16:34:37.660 に答える
0

交換

    $("html,body").animate({

これとともに

    $("html:not(:animated),body:not(:animated)").animate({

また、他の値とは異なる変数名を使用することもお勧めします。たとえば、変数名に使用されるHREFは、リンク属性でもあります。

于 2013-01-03T14:52:56.957 に答える