2013-10-18 162 views
6

當頁面加載時,我需要向下滾動約50px。這是我使用的是什麼:向下滾動頁面加載

$(window).load(function(){ 
    $("html,body").scrollTop(55); 
}); 

我也試過:

scrollTo(0,55) 

然而,這在Firefox和IE的罰款,在Chrome,Safari和Opera它向下滾動到正確的位置然後跳回到頂部(或最後一個滾動位置)。

我也嘗試使用元素ID向下滾動,但瀏覽器仍然覆蓋它。我想是這樣的:

htttp://website.com#element 
+0

試着把你的代碼放在DOM就緒函數中,而不是'$(function(){$(「html,body」)。scrollTop(55);});' – Stphane

+0

剛試過,仍然被瀏覽器覆蓋。 –

+0

你的網址中還有散列嗎? –

回答

4

我覺得你的問題是,你正在使用$(窗口).load和一些瀏覽器有問題,因爲事情havnt尚未完全呈現。嘗試更換到

$(document).ready(function(){ 
    $("html,body").scrollTop(55); 
}); 

似乎在這裏http://jsfiddle.net/7jwRk/1/

所有的瀏覽器工作正常信息

$當HTML文件被加載和DOM是(文件)。就緒

執行準備好

$(window).load

執行時,整個頁面完全加載,包括所有的幀,對象和圖像

+0

你的jsfiddle也使用'$(窗口)。load()' – HenningCash

+0

這是有效的,但當我放入我的頁面時,我認爲這是有效的,因爲js小提琴在iframe中運行代碼。 –

+0

如果你嘗試做這樣的事情,它可能會告訴你什麼時候和如果有什麼東西是劫持你的scrollTop $(「html,body」)。animate({scrollTop:0},1000,function(){alert(「got here」) ); –

2

可以使用scrollIntoView()函數。這在大多數瀏覽器(甚至IE6)中都是受支持的。

document.getElementById('header').scrollIntoView() 
+0

我甚至試過這個,瀏覽器仍然重置它。 –

0

或者,就在你的身體的端射這樣的:

... 
    <script type="text/javascript"> 
     $("html,body").scrollTop(55); 
    </script> 
</body> 
</html> 
+0

剛試過,瀏覽器覆蓋它。 –

1
<script type="text/javascript"> 
    $(document).ready(function(){ 
    var divLoc = $('#123').offset(); 
    $('html, body').animate({scrollTop: divLoc.top}, "slow"); 
}); 
</script> 

添加ID = 「123」 任何<div>它會自動滾動下來時,頁面加載。

這是另一個腳本,如果上一個不會工作!

<script> 
window.setInterval(function() { 
var elem = document.getElementById('fixed'); 
elem.scrollTop = elem.scrollHeight; }, 3000); 
</script> 

添加ID =「固定」到任何<div>它會自動滾動下來頁面加載時。