jQuery Scroll到页面底部

AnA*_*ice 186 jquery jquery-plugins

我的页面完成加载后.我想让jQUery很好地滚动到页面底部,快速动画,而不是快速/摇晃.

我需要一个像这样的插件ScrollTo吗?或者是内置到jQuery中的一些如何?

Nic*_*ver 394

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

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

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

为了在技术上正确,你需要减去窗口的高度,但上述工作:

$("html, body").animate({ scrollTop: $(document).height()-$(window).height() });
Run Code Online (Sandbox Code Playgroud)

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

$("html, body").animate({ scrollTop: $("#myID").scrollTop() }, 1000);
Run Code Online (Sandbox Code Playgroud)

  • @NickCraver - 使用最新版本的jQuery .scrollTop()似乎无法滚动到特定的ID; 使用.offset().top应该工作:`$("html,body").animate({scrollTop:$("#myID").offset().top},1000);` (24认同)
  • 锁是因为距离是关闭的.它通过可见动画制作动画. (3认同)
  • 这个答案需要编辑.`$(document).height()`对于`scrollTop`属性来说太大了,你可以通过缓动来注意到它.我认为`$(document).height() - window.innerHeight`应该没问题. (3认同)
  • 另一个问题是,当它看起来已经完成,然后用户试图加速,稍微锁定一下,并产生非常震动的效果,阻止用户向上滚动 (2认同)

Jos*_*ell 20

这样的事情:

var $target = $('html,body'); 
$target.animate({scrollTop: $target.height()}, 1000);
Run Code Online (Sandbox Code Playgroud)


Ali*_*van 14

$('html,body').animate({ scrollTop: 9999 }, 'slow');
Run Code Online (Sandbox Code Playgroud)

就这么简单,9999页面高度......大范围所以它可以达到底部.

  • 这并不完美,因为在某些情况下,即使很少见,也可能会有比这更长的页面,特别是动态加载无限内容的页面。这将在中途停止滚动。 (4认同)

Sar*_* Ak 11

你可以试试这个

var scroll=$('#scroll');
scroll.animate({scrollTop: scroll.prop("scrollHeight")});
Run Code Online (Sandbox Code Playgroud)


小智 8

$("div").scrollTop(1000);
Run Code Online (Sandbox Code Playgroud)

适合我.滚动到底部.

  • 如果您的网页长度超过1000像素,则不会. (10认同)

Anb*_*nbu 5

使用 'document.body.clientHeight' 你可以获得 body 元素的可见高度

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

这会在 id 'preferredDivision' 处滚动