0

如果这样写:

        $(document).on("click", function () {
             window.scroll( 0, 70 );
        });

总是有效,但如果这样写:

        window.onload = function () {
             window.scroll( 0, 70 );
        }

这不适用于 safari 和 chrome 的“隐身窗口”。在其他浏览器中有效。为什么?

4

1 回答 1

3

简单来说,主要原因是您绑定到的不同浏览器/dom 元素的状态。

在第一个中,您将绑定到使用 jQueryclick上的事件<body/>,这可能会确保当您开始实际单击它时,body文档已初始化并有足够的滚动余量以使效果出现在您面前.

在第二个中,您绑定到onload窗口的事件,该事件实际上在body加载之前触发,或者积累了足够的可滚动区域,从而使效果不出现。

相反,理想的技术是使用

$(document).ready(function() {
    window.scrollTo(0,70);
});
于 2012-10-08T10:33:29.357 回答