Принудительная прокрутка страницы вверх при обновлении страницы в HTML



Я создаю веб-сайт, который я публикую с divs. когда я обновляю страницу после ее прокрутки до позиции X, страница загружается с позицией прокрутки как X.



Как я могу заставить страницу прокручиваться вверх при обновлении страницы?



  • то, что я могу думать о некоторых JS или jQuery работает как

2082   10  

10 ответов:

вы можете сделать это с помощью scrollTop метод on дом готов:

$(document).ready(function(){
    $(this).scrollTop(0);
});

простой простые реализация 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

    Ничего не найдено.