Избегайте прокрутки страницы/прыжка, когда якорь находится в URL-адресе

Возможный дубликат:
jquery - отключить привязку "прыжок" при загрузке страницы

Я показываю div в зависимости от значения хэша в URL-адресе, но я хочу, чтобы страница не переместилась на позицию этого 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 работать, заключался в том, чтобы поместить его в setTimeOut с длительностью 1, но это похоже на хак. Любые другие предложения?

Спасибо

В

Ответ 1

Хорошо, если это ваш внутренний механизм для использования якорей только для отображения div, вы всегда можете изменить (или удалить) атрибут "name", чтобы браузер не нашел его напрямую и не попытался прокрутить;)

В противном случае попробуйте Как отключить привязку "jump" при загрузке страницы?