Вопрос по javascript, jquery – Избегайте прокрутки / перехода страницы, когда якорь находится в URL [дубликата]

10

Possible Duplicate:
jquery - disable anchor “jump” when loading a page

Я отображаю 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, но это похоже на хак. Любые другие предложения?

Спасибо

В

привет Бен, как ты решил это пожалуйста? та же проблема у меня echo_Me
Спасибо, ребята, думали, что щелкнув на голосование вверх было достаточно Несколько ответов, которые действительно не помогли, я просто проигнорировал их? Я обычно отвечал с комментарием, но не имел продолжения. Еще раз спасибо. Ben

Ваш Ответ

1   ответ
9

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

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Ben
Error: User Rate Limit Exceeded Ben
Error: User Rate Limit Exceeded

Похожие вопросы