jQuery滚动到页面底部/ iframe

时间:2009-12-11 21:30:54

标签: jquery scroll scrollto

如何使用jquery向下滚动到iframe或页面的底部?

9 个答案:

答案 0 :(得分:344)

如果你想要一个漂亮的慢动画滚动,对于href="#bottom"的任何锚点,这会将你滚动到底部:

$("a[href='#bottom']").click(function() {
  $("html, body").animate({ scrollTop: $(document).height() }, "slow");
  return false;
});

随意更改选择器。

答案 1 :(得分:206)

scrollTop()返回可滚动区域中隐藏的像素数,因此给它:

$(document).height()

实际上会超出页面底部。对于在页面底部实际“停止”的滚动,浏览器窗口的当前高度需要减去。如果需要,这将允许使用缓动,因此它变为:

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

答案 2 :(得分:32)

例如:

$('html, body').scrollTop($(document).height());

答案 3 :(得分:14)

在这个线程为我的特定需求(在我的情况下是一个特殊元素内滚动)之后没有成功之后我发现了这个超越,这可能对其他人阅读这个讨论有帮助:

Alternative on planetcloud

由于我已经有了jQuery对象的缓存版本(下面代码中的myPanel是jQuery对象),我添加到事件处理程序的代码就是这样:

myPanel.scrollTop(myPanel[0].scrollHeight - myPanel.height());

(感谢Ben)

答案 4 :(得分:4)

一个简单的函数,可以跳转(立即滚动)到整个页面的底部。它使用内置的.scrollTop()。我没有尝试过这个来适应单个页面元素。

function jumpToPageBottom() {
    $('html, body').scrollTop( $(document).height() - $(window).height() );
}

答案 5 :(得分:2)

这个对我有用:

var elem = $('#box');
if (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight()) {
  // We're at the bottom.
}

答案 6 :(得分:1)

如果您不关心动画,那么您不必获得元素的高度。至少在我尝试过的所有浏览器中,如果你给scrollTop一个大于最大值的数字,它就会滚动到底部。所以给它尽可能多的数字:

$(myScrollingElement).scrollTop(Number.MAX_SAFE_INTEGER);

如果要滚动页面,而不是滚动条的某个元素,只需将myScrollingElement等于'body,html'。

由于我需要在几个地方执行此操作,因此我编写了一个快速而又脏的jQuery函数,以使其更方便,如下所示:

(function($) {
  $.fn.scrollToBottom = function() {
    return this.each(function (i, element) {
      $(element).scrollTop(Number.MAX_SAFE_INTEGER);
    });
  };
}(jQuery));

所以当我追加一堆东西时,我可以做到这一点:

$(myScrollingElement).append(lotsOfHtml).scrollToBottom();

答案 7 :(得分:0)

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

web.xml

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

Chrome 中的

无效,如果 $(window).scrollTop($(document).height());标记 Safari CSS 中设置了html属性。我花了将近一个小时才弄明白。

答案 8 :(得分:0)

$('.block').scrollTop($('.block')[0].scrollHeight);

当新消息到达时,我使用此代码滚动聊天。