16

重複の可能性:
jquery - ページの読み込み時にアンカーの「ジャンプ」を無効にする

URLのハッシュ値に応じてdivを表示していますが、その特定のIDを持つそのdivの位置にページがジャンプするのを避けたいです。

URLにハッシュを使用してページを直接ナビゲートする場合にのみ問題が発生するため、たとえば、誰かがページにブックマークを付けた場合などです。

たとえば、私はURL domain.com/page.html#myitem-1 を持っています

ID=myitem-1 が表示されますが、ページはその div の位置にジャンプしますが、これは望ましくありません。

scrollTop(0) を使用してウィンドウの位置を強制的に上に戻そうとしましたが、アンカージャンプが行われる前に呼び出されて効果がないように見えます

コード例:

  $(document).ready(function() {
    $('.glossary-term').hide();
    $(window.location.hash).show();

    $(window).scrollTop(0);

});

このscrollTopを機能させる唯一の方法は、期間が1のsetTimeOutに配置することでしたが、これはちょっとしたハックのようです。他の提案はありますか?

ありがとう

B

4

1 に答える 1

10

まあ、それがdivを表示するためだけにアンカーを使用するための内部メカニズムである場合は、いつでも「name」属性を変更(または削除)できるため、ブラウザーはそれを直接検出せず、スクロールしようとしません;)

それ以外の場合は、ページの読み込み時にアンカーの「ジャンプ」を無効にする方法を試してください。

于 2012-05-16T21:19:10.213 に答える