当前位置: 首页 > 面试题库 >

如何使用JavaScript / jQuery滚动到页面顶部?

柳鸿信
2023-03-14
问题内容

有没有一种方法可以使用JavaScript / jQuery控制浏览器滚动?

当我向下滚动页面一半,然后触发重新加载时,我希望页面进入顶部,但它会尝试找到最后一个滚动位置。所以我这样做:

$('document').ready(function() {
   $(window).scrollTop(0);
});

但是没有运气。

编辑

因此,当页面加载后,我打电话给您时,您的两个答案都有效。但是,如果我只是在页面上刷新,则看起来浏览器会在.ready事件发生后计算并滚动到其旧的滚动位置(我也测试了body
onload()函数)。

因此,接下来的工作是,有没有一种方法可以防止浏览器滚动到其过去的位置,或者在它完成其工作后重新滚动到顶部?


问题答案:

哇,我这个问题迟到了9年。干得好:

将此代码添加到您的onload中。

// This prevents the page from scrolling down to where it was previously.
if ('scrollRestoration' in history) {
    history.scrollRestoration = 'manual';
}
// This is needed if the user scrolls down during page load and you want to make sure the page is scrolled to the top once it's fully loaded. This has Cross-browser support.
window.scrollTo(0,0);

history.scrollRestoration浏览器支持:

Chrome:受支持(自46开始)

Firefox:受支持(自46开始)

IE / Edge: 不支持 (尚..)

Opera:受支持(自33起)

Safari:受支持

对于IE / Edge,如果要在其自动向下滚动后重新滚动到顶部,则对我有用:

var isIE11 = !!window.MSInputMethodContext && !!document.documentMode;
var isEdge = /Edge/.test(navigator.userAgent);
if(isIE11 || isEdge) {
    setTimeout(function(){ window.scrollTo(0, 0); }, 300);  // adjust time according to your page. The better solution would be to possibly tie into some event and trigger once the autoscrolling goes to the top.
}


 类似资料:
  • 问题内容: 如何使用JavaScript滚动到页面顶部?即使滚动条立即跳到顶部也是可取的。我不是在寻找平滑的滚动。 问题答案: 如果您不需要更改以进行动画处理,则无需使用任何特殊的插件-我只需要使用本机JavaScript window.scrollTo方法- 传入0,0即可将页面立即滚动到左上角。 参量 x坐标是沿水平轴的像素。 y坐标是沿垂直轴的像素。

  • 问题内容: 使用Python和Selenium时,我在滚动到网页顶部时遇到问题。 当页面由于某种原因加载时,您将被带到页面底部(这是固定的)。但是,当我尝试滚动到顶部时,它不起作用。 我尝试了以下方法: 和 我也尝试过找到该元素,然后滚动到它: 向下滚动到元素时,上面的scrollIntoView()代码适用。但是,它无法向上滚动。 我已经尝试过运行Chrome驱动程序和PhantomJs。 有什

  • 我在onLoad上使用下面的代码进入页面顶部。window.scroll到(0,0)在Javascript中,它适用于浏览器,但不适用于任何移动设备。

  • 当我单击列表项以转到另一个页面时,当前页面会跳转到屏幕顶部,然后再转换到下一页。 这个问题发生在jQM 1.2中,在新发布的1.3版本中仍然没有修复。 是否有人知道如何防止滚动到顶部,并在使用后退按钮时记住滚动位置? 这种令人讨厌的行为是不可接受的,并破坏了整个应用程序体验。 我使用它作为一个网络应用程序,在iPhone4S,iOS6.1.2。

  • 问题内容: 我在我的网站上无法使用jQuery功能。它的作用是使用该 函数识别窗口何时更改其滚动位置,并在更改时调用一些函数以从服务器加载数据。 问题是滚动位置稍有变化并立即将数据加载到底部时,就会立即调用该函数。但是,我希望实现的是在滚动/页面位置到达底部时加载新数据,就像Facebook feed那样。 但是我不确定如何使用jQuery检测滚动位置吗? 问题答案: 您可以使用jQuery的方法

  • 问题内容: 我已经尝试过使用dynamic.js和下面的代码,但是,当我在IE11中尝试此操作时,每次滚动时它都会一直跳到顶部: 我想使页面在平板电脑,IE10和11上可滚动,以便用户可以像在移动设备上一样向上推动页面以向下滚动。 如何在不跳到顶部的情况下在纯JS或jQuery中做到这一点? 问题答案: 您可以通过记录单击时鼠标的位置以及被拖动时的当前位置来非常简单地完成此操作。尝试这个: 为了防