6

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

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

我也试过:

scrollTo(0,55)

这在 Firefox 和 IE 中运行良好,但在 Chrome、Safari 和 Opera 中,它会向下滚动到正确的位置,然后跳回顶部(或最后一个滚动位置)。

我也尝试过使用元素 id 向下滚动,但浏览器仍然会覆盖它。我试过这样:

htttp://website.com#element
4

6 回答 6

4

我认为您的问题是您正在使用 $(window).load 并且某些浏览器遇到问题,因为事情还没有完全呈现。尝试换成

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

似乎在所有浏览器中都可以正常工作http://jsfiddle.net/7jwRk/1/

信息

$(文档).ready

在加载 HTML 文档并且 DOM 准备好时执行

$(窗口).load

在整个页面完全加载时执行,包括所有框架、对象和图像

于 2013-10-18T13:31:40.233 回答
2

您可以使用 scrollIntoView() 函数。大多数浏览器(甚至 IE6)都支持此功能。

document.getElementById('header').scrollIntoView()
于 2013-10-18T13:35:16.593 回答
2
<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="fixed" 添加到任何<div>它将在页面加载时自动向下滚动。

于 2016-06-08T06:07:32.913 回答
0

或者,只需在你的身体末端开火:

...
    <script type="text/javascript">
        $("html,body").scrollTop(55);
    </script>
</body>
</html>
于 2013-10-18T13:41:20.013 回答
0

在弄乱scrollIntoView(),并观察它在页面绘制时正确滚动,然后无缘无故地捕捉到顶部之后,我就这样做了:

http://website.com/#target

<a name="target">

然后浏览器准确地理解我需要什么并做到这一点。但是我只能这样做,因为我们控制了URI,所以它自然也不会在所有情况下都起作用。

于 2021-02-16T16:35:28.527 回答
-1

如果您使用 2 台显示器,请确保当您打开浏览器窗口以及执行脚本的页面时,不要将该窗口移动到具有不同屏幕分辨率的另一台显示器。很快:不要将浏览器的窗口跨越到不同的监视器,只需为每个监视器/屏幕分辨率打开一个新的浏览器窗口。

于 2018-12-06T11:53:25.847 回答