2015-02-12 2 views
0

Я работаю над проектом, в котором мой клиент просит загрузить страницу наверху. Вот требованиеChrome/Safari - window.scroll на странице load

Всякий раз, когда вы обновляете страницу, независимо от того, где вы находитесь в браузере, страница должна обновляться в верхней части страницы.

Для этого я использовал две функции window.scroll(0,0) и scrollTop(0) при загрузке документа.

jQuery(document).ready(function(e){ 
    window.scroll(0,0); 
}); 

И

jQuery(document).ready(function(e){ 
    jQuery("body,html,document").scrollTop(0); 
}); 

я получить желаемые результаты в браузерах с использованием любого из указанных выше двух кодов, за исключением Chrome/Safari.
Это то, что я испытываю в Chrome/Safari. Предположим, что я нахожусь внизу страницы, а затем обновляю ее, а затем получаю события в следующей последовательности.

  1. Страница загружается в том месте, где я был на момент обновления. (Снизу - загрузка страницы).
  2. Тогда функции, упомянутые выше, работают и верните меня в начало страницы. (Все еще загружается).
  3. Наконец, когда страница полностью загружается, она возвращает меня туда, где я был во время обновления страницы, то есть внизу.

Вы можете проверить его на this page.

Я также попытался установить функцию тайм-аута как.

jQuery(document).ready(function(e){ 
    setTimeout(function() {window.scrollTo(0, 0);},500) 
}); 

Теперь это работает на некоторых страницах, но не на всех. Поэтому я ищу лучший способ, чем мой. Спасибо.

ответ

0

Вы должны использовать что-то вроде этого:

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

Edit: Chrome/Safari:

$(window).on('beforeunload', function() { 
    $(window).scrollTop(0); 
}); 
+0

Вы уверены, что с "beforeunload"? Я думаю, это для страницы. Не так ли? –

+0

@Symbolwdd Вы не можете заставить chrome scrollTop 0, он будет прыгать только после первого события прокрутки, однако вы можете обмануть браузер с событием beforeunload. – Tom

+0

Я пробовал ваш код и не повезло. –