Почему привязки к странице иногда отсутствуют?

17
задан skaffman 10 October 2010 в 07:12
поделиться

7 ответов

Довольно часто прокрутка может происходить до завершения загрузки страницы. Если у вас есть изображения без ширины и высоты, страница будет перемещаться, затем загружать изображение и изменять его структуру, в результате чего ранее прыгнувшее место показалось неправильным.

Редактировать: все остальное, что может изменить макет страницы, также следует рассматривать с подозрением ... это включает в себя javascript и CSS, которые не загружены в <head> (не говоря уже о том, что весь CSS должен быть загружен в голова; это не всегда).

Если страница перенаправляется через перенаправление, я думаю, что IE прокрутит конечную страницу, а Firefox - нет.

18
ответ дан 30 November 2019 в 11:53
поделиться

Я верю поведению, которое Вы видите, результат браузера, располагающегося к тому пятну на странице, прежде чем все изображения закончили загружаться. Как только изображения заканчивают загружаться, тогда расположение страницы изменилось (страница, вероятно, более длинна вертикально, например), вызывая местоположение того, где привязка должна быть должна измениться - но браузер все еще думает, что это уже перешло к той привязке.

5
ответ дан 30 November 2019 в 11:53
поделиться

JS Solution

Запустите эту функцию для готового документа.

 function goToAnchor() { 
    hash = document.location.hash;
    if (hash !="") {
        setTimeout(function() {
            if (location.hash) {
                window.scrollTo(0, 0);
                window.location.href = hash;
            }
        }, 1);
    }
    else {
        return false;
    }
}
7
ответ дан 30 November 2019 в 11:53
поделиться

Как упомянуто выше, это происходит, вероятно, из-за изображений, представляемых поздно и 'корректирующий' расположение, как они загружаются.

, Если можно определить размер изображений тогда, так много комнаты может быть выделено, прежде чем они представят, который должен предотвратить проблему.

Как примечание стороны у меня была эта проблема прежде в форме использования вперед/назад между достаточным количеством страниц, что для изображений была нужна перезагрузка, заставив меня оказаться в неправильном месте после того, как они представили.

2
ответ дан 30 November 2019 в 11:53
поделиться

Обратите внимание, что вы можете добавить id="pagelocation" практически к любому элементу HTML, для того же результата, что избавляет вас от добавления дополнительных якорей для мест назначения ссылок.

1
ответ дан 30 November 2019 в 11:53
поделиться

ОК. Я думаю, что это новое. Использование HTML5 autofocus вызовет пропуски зажигания, как и метод jQuery focus(). Потребовалось 90 минут проб и ошибок, чтобы обнаружить это, потому что я думал, что проблема связана с изображением:)

1
ответ дан 30 November 2019 в 11:53
поделиться

Я также видел, как это происходит, когда JavaScript создает раскрывающееся меню вверху страницы. Затем, когда меню закончено, оно скрывается, прокручивая содержимое ниже.

Тем временем браузер уже установил целевое местоположение в верхней части окна. Скрытие меню в самом верху страницы перемещает целевое местоположение за пределы верхнего края окна.

2
ответ дан 30 November 2019 в 11:53
поделиться
Другие вопросы по тегам:

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