web-dev-qa-db-ja.com

アンカーがURLにあるときにページのスクロール/ジャンプを回避する

可能性のある複製:
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を機能させる唯一の方法は、durationを1に設定したsetTimeOutに配置することでしたが、これは少しハックのようです。他に何か提案はありますか?

ありがとう

B

15
Ben

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

それ以外の場合は ページのロード時にアンカーの「ジャンプ」を無効にする方法

10
Majki