Chrome запоминает положение прокрутки
Я столкнулся с проблемой, которая на самом деле является" функцией " в Chrome. Как большинство из вас может знать, Chrome запоминает позицию прокрутки, в которую он возвращается, когда вы возвращаетесь на страницу. И у меня с этим проблемы.
есть ли способ переопределить это без уведомления Пользователя?
Mees
не удалось попробовать-аутов:
- ScrollTop на документ.готов
5 ответов
Я проверил chrome, он работал хорошо. Иногда setTimeout
делает трюк :)
<script type="text/javascript">
window.onload=function(){
setTimeout(function(){
scrollTo(0,-1);
},0);
}
</script>
в Chrome 46 + поведение автоматической прокрутки можно отключить с помощью истории.scrollRestoration:
if ('scrollRestoration' in history) {
history.scrollRestoration = 'manual';
}
источник: https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration
x = 0; //horizontal coord
y = document.height; //vertical coord
window.scroll(x,y);
некоторые Javascript, как это может быть очень хорошо можно манипулировать, чтобы остановить автоматическую прокрутку.
Это зависит от того, счастливы ли вы, что прокрутка будет просто установлена для автоматического перехода к вершине, или вы на самом деле ищете стандартную опцию Chrome, чтобы взять страницу в последнюю позицию прокрутки, чтобы полностью отключить?
что вы в настоящее время пытаетесь использовать для scrollTop()?
Я решил это, присоединившись к событию прокрутки, а затем сбросив положение прокрутки при первом прокрутке пользователя. Работает для перезагрузки на месте для меня.
выглядит так:
var scrollResetOnce = false;
$(window).on("scroll", function() {
if (scrollResetOnce) return;
scrollResetOnce = true;
scrollTo(0, -1);
});
вот чистый способ сделать это.
window.addEventListener('unload', function(e){
document.body.style.display = 'none';
});
просто установив отображение тела в "Нет", вам не нужно беспокоиться о вспышке прокрутки браузера в верхней части страницы, прежде чем она будет выгружена, и положение прокрутки автоматически будет сброшено до 0.