2013-10-18 114 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>它会自动滚动下来页面加载时。