我如何使用jquery向下滚动到iframe或页面的底部?
当前回答
这个对我很有用:
var elem = $('#box');
if (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight()) {
// We're at the bottom.
}
其他回答
scrollTop()返回从可滚动区域的视图中隐藏的像素数,因此给它:
$(document).height()
会超出页面的底部。为了让滚动实际“停止”在页面底部,需要减去当前浏览器窗口的高度。这将允许在需要时使用easing,所以它变成:
$('html, body').animate({
scrollTop: $(document).height()-$(window).height()},
1400,
"easeOutQuint"
);
如果你不关心动画,那么你就不需要获取元素的高度。至少在我尝试过的所有浏览器中,如果你给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));
当我添加一个buncho'的东西时,我可以这样做:
$(myScrollingElement).append(lotsOfHtml).scrollToBottom();
在这个线程没有为我的特定需求工作之后(在我的情况下,一个文本区域内滚动一个特定元素),我在伟大的超越中发现了这一点,这可能对其他人阅读这个讨论有帮助:
备选行星云
因为我已经有了我的jQuery对象的缓存版本(下面代码中的myPanel是jQuery对象),我添加到我的事件处理程序的代码是这样的:
myPanel.scrollTop(myPanel[0].scrollHeight - myPanel.height());
(由于本)
例如:
$('html, body').scrollTop($(document).height());
这个对我很有用:
var elem = $('#box');
if (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight()) {
// We're at the bottom.
}
推荐文章
- 在JavaScript中根据键值查找和删除数组中的对象
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- jQuery: keyPress退格键不火?
- XMLHttpRequest Origin null不允许Access-Control-Allow-Origin for file:/// to file:///(无服务器)
- 重置setTimeout
- jQuery有不聚焦的方法吗?
- jQuery -替换字符串中某个字符的所有实例
- Ng-repeat结束事件
- 模糊vs聚焦-有什么真正的区别吗?
- 如何用jQuery / JavaScript解析JSON数据?
- jQuery在请求体中发布有效的json
- jQuery中的live()转换为on()
- jQuery等价于JavaScript的addEventListener方法
- jQuery需要避免的陷阱
- 用jQuery切换DIV背景图像