Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面加载时向下滚动_Javascript_Jquery_Html - Fatal编程技术网

Javascript 页面加载时向下滚动

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

当页面加载时,我需要向下滚动大约50px。这就是我正在使用的:

$(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>