Ответ 1
Вы можете сделать это с помощью метода scrollTop на DOM ready:
$(document).ready(function(){
$(this).scrollTop(0);
});
Я создаю веб-сайт, который я публикую с помощью div
s. Когда я обновляю страницу после ее прокрутки до положения X, страница загружается в положение прокрутки в виде X.
Как заставить страницу прокручиваться вверху страницы на странице?
Я могу думать о том, что некоторые JS или jQuery выполняются как onLoad()
на странице SET, страницы прокручиваются вверх. Но я не знаю, как это сделать.
Лучшим вариантом было бы, если есть какое-то свойство или что-то, чтобы страница была загружена с ее положением прокрутки по умолчанию (т.е. вверху), которая будет напоминать загрузку страницы, а не обновлять страницу.
Вы можете сделать это с помощью метода scrollTop на DOM ready:
$(document).ready(function(){
$(this).scrollTop(0);
});
Для простой реализации JavaScript:
window.onbeforeunload = function () {
window.scrollTo(0, 0);
}
Ответ здесь не работает для сафари, document.ready часто запускается слишком рано.
Должно использовать событие beforeunload
, которое мешает вам создавать некоторые setTimeout
$(window).on('beforeunload', function(){
$(window).scrollTop(0);
});
Опять же, лучший ответ:
window.onbeforeunload = function () {
window.scrollTo(0,0);
(это для не-jQuery, посмотрите, если вы ищете метод JQ)
EDIT: небольшая ошибка его "onbeforunload":) Chrome и другие браузеры "помнят" последнюю позицию прокрутки перед разгрузкой, поэтому, если вы установите значение 0,0 только для выгрузки своей страницы, они будут помнить 0,0 и не будут прокручивать назад до того места, где была полоса прокрутки: )
Проверьте функцию jQuery .scrollTop()
здесь
Он выглядел бы как
$(document).load().scrollTop(0);
Вы также можете попробовать
$(document).ready(function(){
$(window).scrollTop(0);
});
Если вы хотите прокрутить в позиции x, чем вы можете изменить значение от 0 до x.
Вместо location.reload()
просто используйте location.href = location.href
. Он не будет прокручиваться до предыдущей позиции, как это делает location.reload()
.
Примечание. Это не будет перезагружаться, если в URL есть какой-либо символ
<script> location.hash = (location.hash) ? location.hash : " "; </script>
Поместите вышеуказанный script в тег <head>
вашего html. Не знаете, как работают одни страницы! Но уверенный работает как чары на обычных страницах.
Ответ здесь (прокрутка в $(document).ready
) не работает, если на странице есть видео. В этом случае страница прокручивается после запуска этого события, переопределяя нашу работу.
Лучший ответ:
$(window).on('beforeunload', function(){
$(window).scrollTop(0);
});
$(document).ready(function(){
$(window).scrollTop(0);
});
не работал у меня, так как Google Chrome просто прокручивал назад после завершения загрузки страницы. Я использовал
$(document).ready(function() {
var url = window.location.href;
console.log(url);
if( url.indexOf('#') < 0 ) {
window.location.replace(url + "#");
} else {
window.location.replace(url);
}
});
//Это загружает страницу С# в конце. Поэтому он всегда будет загружаться вверху.
Сверхкалифрагистическая особенность -
добавьте это в начало своего js файла или тега
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
document.body.scrollTop = 0; // For Safari