Принудительная прокрутка страницы вверх при обновлении страницы в HTML
Я создаю веб-сайт, который я публикую с divs. когда я обновляю страницу после ее прокрутки до позиции X, страница загружается с позицией прокрутки как X.
Как я могу заставить страницу прокручиваться вверх при обновлении страницы?
то, что я могу думать о некоторых JS или jQuery работает как
10 ответов:
простой простые реализация JavaScript:
window.onbeforeunload = function () { window.scrollTo(0, 0); }
ответ здесь не работает для safari, документ.готовность часто срабатывает слишком рано.
нужно использовать
beforeunloadсобытие, которое мешает вам сформировать некоторыеsetTimeout$(window).on('beforeunload', function(){ $(window).scrollTop(0); });
вы также можете попробовать
$(document).ready(function(){ $(window).scrollTop(0); });Если вы хотите прокрутить в позиции x, чем вы можете изменить значение от 0 до x.
Проверьте jQuery
.scrollTop()функции здесьэто будет выглядеть примерно так
$(document).load().scrollTop(0);
опять же, лучший ответ:
window.onbeforeunload = function () { window.scrollTo(0,0);(это для не-jQuery, посмотрите, если вы ищете ofr метод JQ)
EDIT: небольшая ошибка его " onbeforunload" :) Chrome и другие браузеры "помнят" последнюю позицию прокрутки перед выгрузкой, поэтому, если вы установите значение 0,0 только перед выгрузкой вашей страницы, они будут помнить о 0,0 и не будут прокручиваться обратно туда, где была полоса прокрутки:)
ответ здесь(прокрутка в
$(document).ready) не работает, если есть видео на странице. В этом случае страница прокручивается после этого события, отменяя нашу работу.лучший ответ должен быть:
$(window).on('beforeunload', function(){ $(window).scrollTop(0); });
вместо
location.reload(), просто использоватьlocation.href = location.href. Он не будет прокручиваться до предыдущей позиции какlocation.reload()делает.Примечание: это не будет перезагружаться, если есть какие-либо # в URL
<script> location.hash = (location.hash) ? location.hash : " "; </script>поместите приведенный выше скрипт в
<head>тег вашего html. Не уверен, как ведут себя одностраничные приложения! Но, конечно, работает как шарм на обычных страницах.
$(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); } });// это загружает страницу с # в конце. Поэтому он всегда будет загружаться сверху.
Comments