自动滚动到页面底部

IT技术 javascript jquery scroll scrollto js-scrollintoview
2021-01-09 20:07:46

我有一个问题清单。当我点击第一个问题时,它应该会自动将我带到页面底部的特定元素。

我怎样才能用 jQuery 做到这一点?

6个回答

jQuery 不是必需的。我从 Google 搜索中获得的大多数最佳结果都给了我这个答案:

window.scrollTo(0,document.body.scrollHeight);

如果您有嵌套元素,文档可能不会滚动。在这种情况下,您需要定位滚动的元素并使用它的滚动高度。

window.scrollTo(0,document.querySelector(".scrollingContainer").scrollHeight);

您可以将其与问题的onclick事件联系起来(即<div onclick="ScrollToBottom()" ...)。

您可以查看一些其他来源:

2016 年 5 月 4 日:请注意,“scrollTo”功能是实验性的,并不适用于所有浏览器。
2021-03-11 20:07:46
scrollto 无法在我的浏览器上运行,我在stackoverflow.com/questions/8917921/下方找到了此链接...这非常有用,因为这些解决方案适用于我尝试过的浏览器。
2021-03-13 20:07:46
对于单独的元素,这是可行的解决方案: document.querySelector(".scrollingContainer").scrollTo(0,document.querySelector(".scrollingContainer").scrollHeight);
2021-03-16 20:07:46
这应该工作了:objectSelector.scrollTo({ top: objectSelector.scrollHeight })理解这objectSelector是由 返回的元素document.getElementByIdPD:behavior: 'smooth'scrollTo方法选项中添加设置预定义的滚动动画。
2021-03-27 20:07:46
没有为我工作。我这样做了:element.scrollTop = element.scrollHeight
2021-04-07 20:07:46

要将整个页面滚动到底部:

var scrollingElement = (document.scrollingElement || document.body);
scrollingElement.scrollTop = scrollingElement.scrollHeight;

例子的jsfiddle

要将元素滚动到底部:

function gotoBottom(id){
   var element = document.getElementById(id);
   element.scrollTop = element.scrollHeight - element.clientHeight;
}

这是它的工作原理:

在此处输入图片说明

参考:scrollTopscrollHeightclientHeight

更新:最新版本的 Chrome (61+) 和 Firefox 不支持滚动正文,请参阅:https : //dev.opera.com/articles/fixing-the-scrolltop-bug/

该解决方案适用于 Chrome、Firefox、Safari 和 IE8+。查看此链接了解更多详情quirksmode.org/dom/w3c_cssom.html
2021-04-04 20:07:46
@luochenhuan,我刚刚使用“document.scrollingElement”而不是“document.body”修复了示例代码,见上文
2021-04-04 20:07:46

Vanilla JS 实现:

element.scrollIntoView(false);

https://developer.mozilla.org/en-US/docs/Web/API/element.scrollIntoView

我在页面末尾添加了一个空 div 并使用了该 div 的 id。完美地工作。
2021-03-11 20:07:46
现在可以在较新版本的 Chrome 中使用,但某些额外选项(如平滑滚动)似乎尚未实现。
2021-03-14 20:07:46
目前它只是 Firefox
2021-04-03 20:07:46
更好的是: element.scrollIntoView({behavior: "smooth"});
2021-04-06 20:07:46
使用 jQuery $('#id')[0].scrollIntoView(false);
2021-04-09 20:07:46

您可以使用它以动画格式向下浏览页面。

$('html,body').animate({scrollTop: document.body.scrollHeight},"fast");
此解决方案适用于 IE11。谢谢你。
2021-03-26 20:07:46

下面应该是跨浏览器的解决方案。已在 Chrome、Firefox、Safari 和 IE11 上进行测试

window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);

window.scrollTo(0,document.body.scrollHeight); 不适用于 Firefox,至少适用于 Firefox 37.0.2

您可以添加滚动选项
2021-03-20 20:07:46
window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight); - 滚动不流畅。如何使滚动平滑@PixelsTech
2021-04-02 20:07:46
在 Firefox 62.0.3 中确实有效,但我不知道他们何时修复了这个问题。
2021-04-06 20:07:46