2016-10-03 3 views
0

Привет, У меня возникла проблема с моим предварительным загрузчиком. Если я говорю наполовину вниз по странице, и я нажимаю ссылку или обновляю страницу, следующая страница отображается в последней позиции (например, на полпути вниз по странице, как на предыдущей странице). Мне нужно, чтобы каждая страница была наверху. Вот мой код:Page Refresh Preloader Page Position Issue

$(window).load(function(e){ 
    e.preventDefault(); 
    $('#status').fadeOut('slow'); 
    $('#preloader').fadeOut('slow'); 
    $(function(){ 
     $(this).scrollTop(0); 
     setTimeout(function(){ 
     $('html, body').css({ "overflow-y":"auto"});}, 500); 
    });  
}); 
+0

Можете ли вы сделать jsfiddle с рабочим примером вашей проблемы? – Cine

ответ

0

Привет нашел ответ, основанный на этом Reload browser does not reset page to top

функция scrollTop не работает должным образом здесь работает пример

$(window).load(function(e){ 
    e.preventDefault(); 
    $('#status').fadeOut('slow'); 
    $('#preloader').fadeOut('slow'); 
    $(function(){ 
     $('html').animate({scrollTop:0}, 1); 
     $('body').animate({scrollTop:0}, 1); 
     setTimeout(function(){ 
     $('html, body').css({ "overflow-y":"auto"});}, 500); 
     }); 

}); 
0

Положите $(this).scrollTop(0); после (как минимум) задержки (Толкается позже в event-loop)

$(window).load(function(e) { 
 
    e.preventDefault(); 
 
    $('#status').fadeOut('slow'); 
 
    $('#preloader').fadeOut('slow'); 
 
    $(function() { 
 
    setTimeout(function() { 
 
     $(this).scrollTop(0); 
 
    }, 0); 
 
    setTimeout(function() { 
 
     $('html, body').css({ 
 
     "overflow-y": "auto" 
 
     }); 
 
    }, 500); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br> 
 
<br>