Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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:scrollTo()vs scroll(),这是公认的/标准的方法_Javascript_Scroll_Web Standards - Fatal编程技术网

Javascript:scrollTo()vs scroll(),这是公认的/标准的方法

Javascript:scrollTo()vs scroll(),这是公认的/标准的方法,javascript,scroll,web-standards,Javascript,Scroll,Web Standards,我知道scroll()和scrollTo()都做同样的事情,浏览器都支持这两种功能以确保向后兼容性,但哪一种是不推荐的?我应该用哪一个?还有一种方法可以防止浏览器在页面上存储滚动位置,这样我就不必在用户离开页面之前使用“beforeunload”事件侦听器将滚动位置重置为(0,0)?我总是希望我的页面每次都以(0,0)的滚动位置呈现,因为它更像是一个互动游戏而不是一个网站,并且需要这个功能 W3Schools似乎只引用了scrollTo(),因此这可能是标准。尽管如此,“beforeunload

我知道
scroll()
scrollTo()
都做同样的事情,浏览器都支持这两种功能以确保向后兼容性,但哪一种是不推荐的?我应该用哪一个?还有一种方法可以防止浏览器在页面上存储滚动位置,这样我就不必在用户离开页面之前使用
“beforeunload”
事件侦听器将滚动位置重置为(0,0)?我总是希望我的页面每次都以(0,0)的滚动位置呈现,因为它更像是一个互动游戏而不是一个网站,并且需要这个功能


W3Schools似乎只引用了
scrollTo()
,因此这可能是标准。尽管如此,
“beforeunload”
事件监听器的解决方案还是不错的,这样我的页面总是从滚动位置(0,0)开始,而没有额外的监听器。

W3实际上在其窗口界面规范中列出了这两种方法:


您可以安全地使用其中任何一个。

确实如此,这就是在没有任何标准之前,一切都是如何演变的。不幸的是,我认为没有办法绕过重置滚动位置的问题,因为我相信浏览器可以自行处理这个问题。您也可以尝试在页面加载时强制滚动到(0,0)。是否有强制滚动的方法?现在使用“beforeunload”是可行的,但是显式调用
window.scrollTo(0,0)
似乎不起作用。我不确定-我自己也没有尝试过,这就是为什么我建议使用它。也许您可以尝试在内容开始加载时立即执行它,方法是在打开
元素之后或在关闭它之前立即放置
标记
滚动到桌面上即可正常工作。我想我的问题可能与缩放有关,而不是滚动位置。另外,Android版Firefox是我的问题浏览器。它在
窗口之后触发一个屏幕
调整大小
事件。在获取客户端维度之前,onload
。从那以后,我开始接受这样一个事实:在网页设计中,几乎没有任何看起来标准的东西可以作为跨浏览器的解决方案。另一方面,
scrollTo
通常工作得很好。我将继续使用上面的
滚动
,并继续在我所有的移动浏览器中进行测试,直到正确为止。