jQuery滚动到页面底部


196

页面加载完成后。我希望jQUery能够很好地滚动到页面底部,动画速度很快,而不是快速/摇动。

我需要这样的插件ScrollTo吗?还是内置在jQuery中的一些方式?

Answers:


416

您可以通过为scrollTop属性设置动画来向下滚动页面,无需插件,如下所示:

$(window).load(function() {
  $("html, body").animate({ scrollTop: $(document).height() }, 1000);
});

请注意使用window.onload(当加载图像时...占据高度)而不是使用document.ready

为了技术上正确,您需要减去窗口的高度,但是上面的方法有效:

$("html, body").animate({ scrollTop: $(document).height()-$(window).height() });

要滚动到特定的ID,请使用.scrollTop(),如下所示:

$("html, body").animate({ scrollTop: $("#myID").scrollTop() }, 1000);

2
另一个问题是,当它看起来完成后,用户尝试向上倾斜,从而将其锁定了一点,并产生非常震撼的效果,阻止了用户向上滚动
AnApprentice 2010年

1
@AnApprentice-这是因为它发生得很快(默认情况下为400毫秒),我建议您快速滚动一下以缓解该问题。
尼克·克拉弗

3
锁定是因为距离不对。它动画通过可见动画。
Josiah Ruddell,2010年

27
@NickCraver-使用最新版本的jQuery .scrollTop()似乎无法滚动到特定的ID;.offset()。top可以正常工作: $("html, body").animate({ scrollTop: $("#myID").offset().top }, 1000);
Paolo Gibellini 2014年

3
该答案需要编辑。$(document).height()物超所值scrollTop,您会注意到宽松政策。我认为$(document).height() - window.innerHeight应该没问题。
silvenon 2014年


16
$('html,body').animate({ scrollTop: 9999 }, 'slow');

如此简单,9999页高...很大的范围,因此可以到达底部。


1
这是不完美的,因为在某些情况下,即使是很少见的页面也可能长于该页面,特别是动态加载无限内容的页面。这将在中间停止滚动。
阿基尔·古普塔

13

你可以试试这个

var scroll=$('#scroll');
scroll.animate({scrollTop: scroll.prop("scrollHeight")});

10
$("div").scrollTop(1000);

为我工作。滚动到底部。


13
如果您的网页超过1000像素,则不会。
Volomike

4

先前答案中提到的脚本,例如:

$("body, html").animate({
    scrollTop: $(document).height()
}, 400)

将无法工作Chrome浏览器,并将于Jumpy在Safari浏览器 的情况下, html标签在CSS具有overflow: auto;属性集。我花了近一个小时才弄清楚。


3

使用“ document.body.clientHeight”,您可以获取主体元素的可见高度

$('html, body').animate({
    scrollTop: $("#particularDivision").offset().top - document.body.clientHeight + $("#particularDivision").height()
}, 1000);

滚动到id'particularDivision'


1

对于jQuery 3,请更改

$(window).load(function(){$(“ html,body”)。animate({scrollTop:$(document).height()},1000);})

至:

$(window).on(“ load”,function(e){$(“ html,body”)。animate({scrollTop:$(document).height()},1000);})



0

js

var el = document.getElementById("el");
el.scrollTop = el.scrollHeight - el.scrollTop;

尽管此代码可能有助于解决问题,但并未解释为什么和/或如何回答问题。提供这种额外的环境将大大提高其长期教育价值。请编辑您的答案以添加解释,包括适用的限制和假设。
Toby Speight,


0
var pixelFromTop = 500;     
$('html, body').animate({ scrollTop: pixelFromTop  }, 1);

因此,打开页面时,它会在1毫秒后自动向下滚动

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.