Javascript 页面加载时向下滚动
当页面加载时,我需要向下滚动大约50px。这就是我正在使用的:Javascript 页面加载时向下滚动,javascript,jquery,html,Javascript,Jquery,Html,当页面加载时,我需要向下滚动大约50px。这就是我正在使用的: $(window).load(function(){ $("html,body").scrollTop(55); }); 我也试过: scrollTo(0,55) 这在Firefox和IE中运行良好,但在Chrome、Safari和Opera中,它会向下滚动到适当的位置,然后再跳回到顶部(或最后一个滚动位置) 我还尝试使用元素id向下滚动,但浏览器仍会覆盖它。我试着这样做: htttp://website.com#ele
$(window).load(function(){
$("html,body").scrollTop(55);
});
我也试过:
scrollTo(0,55)
这在Firefox和IE中运行良好,但在Chrome、Safari和Opera中,它会向下滚动到适当的位置,然后再跳回到顶部(或最后一个滚动位置)
我还尝试使用元素id向下滚动,但浏览器仍会覆盖它。我试着这样做:
htttp://website.com#element
我认为您的问题在于您使用的是$(window).load,一些浏览器出现了问题,因为这些东西还没有完全呈现出来。尝试切换到
$(document).ready(function(){
$("html,body").scrollTop(55);
});
在这里的所有浏览器中似乎都可以正常工作
信息
$(文档)。准备就绪
在加载HTML文档且DOM就绪时执行
$(窗口)。加载
当完整页面完全加载时执行,包括所有帧、对象和图像您可以使用scrollIntoView()函数。大多数浏览器(甚至IE6)都支持这一点
或者,只需在身体末端发射:
...
<script type="text/javascript">
$("html,body").scrollTop(55);
</script>
</body>
</html>
。。。
$(“html,正文”).scrollTop(55);
$(文档).ready(函数(){
var divLoc=$('#123').offset();
$('html,body').animate({scrollTop:divLoc.top},“slow”);
});
将id=“123”添加到任何
页面加载时,它将自动向下滚动
如果前一个脚本不起作用,这里还有另一个脚本
<script>
window.setInterval(function() {
var elem = document.getElementById('fixed');
elem.scrollTop = elem.scrollHeight; }, 3000);
</script>
setInterval(函数(){
var elem=document.getElementById('fixed');
elem.scrollTop=elem.scrollHeight;},3000);
将id=“fixed”添加到任何
页面加载时,它会自动向下滚动。如果您使用的是两个监视器,请确保在使用脚本所针对的页面打开浏览器窗口时,不会将该窗口移到另一个屏幕分辨率不同的监视器。简而言之:不要将浏览器的窗口交叉到不同的显示器,只需为每个显示器/屏幕分辨率打开一个新的浏览器窗口。在使用scrollIntoView()
,并在页面绘制时观察到它正确地滚动,然后无缘无故地跳到顶部后,我使用了以下方法:
http://website.com/#target
及
然后浏览器会准确地理解我需要什么并执行它。但是我只能这样做,因为我们控制URI,所以它自然也不会在所有情况下都起作用刚刚尝试过,仍然会被浏览器覆盖。您的url中也有哈希吗?@f00bar jQuery中的
$(function(){})
构造只是$(document).ready(function(){})
的别名,所以是一样的。两者都等待DOM就绪事件(以及处理跨浏览器不一致性的其他复杂检查)。@kenbyes仍然有代码在幕后执行,这可能是某些浏览器行为不一致的原因:/
,只要假设您的JSFIDLE也使用$(窗口)。load()
这很有效,但是当我把它放进我的页面时,我认为它不起作用,因为js fiddle在一个iframe中运行代码。如果你尝试这样做,它可能会告诉你什么时候或者如果有什么东西在高举你的scrollTop$(“html,body”)。animate({scrollTop:0},1000,function(){alert(“got here”));@user2204158如果在jsiddle中选择“no wrap-in body”,这也会起作用。请重试(不是在jsiddle中,而是在我的站点中),它仍然不起作用。唯一有效的解决方案似乎是超时。这个答案与问题本身无关。即使使用两个监视器可以改变某些行为,但与如何在页面加载时滚动无关。
<script type="text/javascript">
$(document).ready(function(){
var divLoc = $('#123').offset();
$('html, body').animate({scrollTop: divLoc.top}, "slow");
});
</script>
<script>
window.setInterval(function() {
var elem = document.getElementById('fixed');
elem.scrollTop = elem.scrollHeight; }, 3000);
</script>