Довольно часто прокрутка может происходить до завершения загрузки страницы. Если у вас есть изображения без ширины и высоты, страница будет перемещаться, затем загружать изображение и изменять его структуру, в результате чего ранее прыгнувшее место показалось неправильным.
Редактировать: все остальное, что может изменить макет страницы, также следует рассматривать с подозрением ... это включает в себя javascript и CSS, которые не загружены в <head>
(не говоря уже о том, что весь CSS должен быть загружен в голова; это не всегда).
Если страница перенаправляется через перенаправление, я думаю, что IE прокрутит конечную страницу, а Firefox - нет.
Я верю поведению, которое Вы видите, результат браузера, располагающегося к тому пятну на странице, прежде чем все изображения закончили загружаться. Как только изображения заканчивают загружаться, тогда расположение страницы изменилось (страница, вероятно, более длинна вертикально, например), вызывая местоположение того, где привязка должна быть должна измениться - но браузер все еще думает, что это уже перешло к той привязке.
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;
}
}
Как упомянуто выше, это происходит, вероятно, из-за изображений, представляемых поздно и 'корректирующий' расположение, как они загружаются.
, Если можно определить размер изображений тогда, так много комнаты может быть выделено, прежде чем они представят, который должен предотвратить проблему.
Как примечание стороны у меня была эта проблема прежде в форме использования вперед/назад между достаточным количеством страниц, что для изображений была нужна перезагрузка, заставив меня оказаться в неправильном месте после того, как они представили.
Обратите внимание, что вы можете добавить id="pagelocation"
практически к любому элементу HTML, для того же результата, что избавляет вас от добавления дополнительных якорей для мест назначения ссылок.
ОК. Я думаю, что это новое. Использование HTML5 autofocus
вызовет пропуски зажигания, как и метод jQuery focus()
. Потребовалось 90 минут проб и ошибок, чтобы обнаружить это, потому что я думал, что проблема связана с изображением:)
Я также видел, как это происходит, когда JavaScript создает раскрывающееся меню вверху страницы. Затем, когда меню закончено, оно скрывается, прокручивая содержимое ниже.
Тем временем браузер уже установил целевое местоположение в верхней части окна. Скрытие меню в самом верху страницы перемещает целевое местоположение за пределы верхнего края окна.