提问人:Adam 提问时间:12/12/2009 更新时间:11/17/2023 访问量:333499
jQuery 滚动到页面/iframe 的底部
jQuery Scroll to bottom of page/iframe
答:
例如:
$('html, body').scrollTop($(document).height());
评论
如果你想要一个漂亮的慢速动画滚动,对于任何有这个的锚点,都会把你滚动到底部:href="#bottom"
$("a[href='#bottom']").click(function() {
$("html, body").animate({ scrollTop: $(document).height() }, "slow");
return false;
});
随意更改选择器。
评论
scrollTop() 返回从可滚动区域隐藏的像素数,因此给出:
$(document).height()
实际上会超过页面底部。要使滚动实际上“停止”在页面底部,需要减去浏览器窗口的当前高度。如果需要,这将允许使用缓和,因此它变为:
$('html, body').animate({
scrollTop: $(document).height()-$(window).height()},
1400,
"easeOutQuint"
);
评论
easeOutQuint
linear
swing
<!DOCTYPE html>
$(document).height()-$(window).height()
在这个线程没有满足我的特定需求(在特定元素内滚动,在我的情况下是文本区域)之后,我在伟大的超越中发现了这一点,这可能对阅读此讨论的其他人有所帮助:
由于我已经有 jQuery 对象的缓存版本(下面的代码中是 jQuery 对象),因此我添加到事件处理程序中的代码就是这样:myPanel
myPanel.scrollTop(myPanel[0].scrollHeight - myPanel.height());
(感谢 Ben)
评论
var d = $('#mydiv'); d.scrollTop (d[0].scrollHeight - d.height ());
这个对我有用:
var elem = $('#box');
if (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight()) {
// We're at the bottom.
}
评论
一个简单的功能,可以跳转到(立即滚动)到整个页面的底部。它使用内置的 .scrollTop()。
我还没有尝试调整它以使用单个页面元素。
function jumpToPageBottom() {
$('html, body').scrollTop( $(document).height() - $(window).height() );
}
评论
$(document).scrollTop($(document).height());
前面的回答中提到的脚本,例如:
$("body, html").animate({
scrollTop: $(document).height()
}, 400)
或
$(window).scrollTop($(document).height());
在 Chrome 中不起作用,如果 CSS 中的标签设置了属性,则在 Safari 中会跳跃。我花了将近一个小时才弄清楚。html
overflow: auto;
如果你不关心动画,那么你就不必得到元素的高度。至少在我尝试过的所有浏览器中,如果你给出的数字大于最大值,它就会滚动到底部。因此,请尽可能给它一个最大的数字:scrollTop
$(myScrollingElement).scrollTop(Number.MAX_SAFE_INTEGER);
如果你想滚动页面,而不是一些带有滚动条的元素,只需等于'body, html'。myScrollingElement
由于我需要在几个地方执行此操作,因此我编写了一个快速而脏的jQuery函数来使其更方便,如下所示:
(function($) {
$.fn.scrollToBottom = function() {
return this.each(function (i, element) {
$(element).scrollTop(Number.MAX_SAFE_INTEGER);
});
};
}(jQuery));
因此,当我附加一个 buncho' 东西时,我可以这样做:
$(myScrollingElement).append(lotsOfHtml).scrollToBottom();
$('.block').scrollTop($('.block')[0].scrollHeight);
当新消息到达时,我使用此代码滚动聊天。
评论
粗略模式(无滚动)
$("body, html").stop().animate({ scrollTop: 9999999 }, 0);
评论
下一个:部分视图不使用父母资源?
评论