我在页面上有一个div:
<div id='div1' style='overflow:scroll;overflow-x:hidden;max-height:200px;'></div>
如何使 div 滚动到 div 的底部?不是页面,只是 DIV。
这里的其他解决方案实际上不能处理内容非常多的div--它会在向下滚动到div的高度时“达到最大值”(而不是div内容的高度)。所以它们可以工作,除非你在其中有超过div高度两倍的内容。
以下是正确版本:
$('#div1').scrollTop($('#div1')[0].scrollHeight);
或者使用 jQuery 1.6+ 版本:
var d = $('#div1');
d.scrollTop(d.prop("scrollHeight"));
或者动画效果:
$("#div1").animate({ scrollTop: $('#div1').prop("scrollHeight")}, 1000);
我可以看到这里的所有答案,包括目前被“接受”的答案,实际上都是错误的,因为它们设置了:
scrollTop = scrollHeight
正确的方法是设置:
scrollTop = scrollHeight - clientHeight
换句话说:
$('#div1').scrollTop($('#div1')[0].scrollHeight - $('#div1')[0].clientHeight);
或者动画效果:
$("#div1").animate({
scrollTop: $('#div1')[0].scrollHeight - $('#div1')[0].clientHeight
}, 1000);
更新:查看Mike Todd的解决方案获取完整答案。
$("#div1").animate({ scrollTop: $('#div1').height()}, 1000);
如果你想让它有动画效果(超过1000毫秒)。
$('#div1').scrollTop($('#div1').height())
如果你希望它是即时的。
$(window).load(function() {
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
});
这段代码获取网页的高度,并在窗口加载后将其向下滚动。将 1000
更改为您需要的速度,以便在页面准备好时更快/更慢地执行。
对我都没有用,我有一个类似Facebook Messenger内部的消息系统,希望消息显示在div底部。
这个方法非常有效,使用基本的JavaScript实现。
window.onload=function () {
var objDiv = document.getElementById("MyDivElement");
objDiv.scrollTop = objDiv.scrollHeight;
}
试试这个:
$('#div1').scrollTop( $('#div1').height() )
[0]
和scrollHeight
。$("#myDiv").animate({ scrollTop: $("#myDiv")[0].scrollHeight }, 1000);
将窗口滚动到目标div的底部。
function scrollToBottom(id){
div_height = $("#"+id).height();
div_offset = $("#"+id).offset().top;
window_height = $(window).height();
$('html,body').animate({
scrollTop: div_offset-window_height+div_height
},'slow');
}
scrollToBottom('call_div_id');
对于 jQuery (版本 > 2.0) 中的动画效果:
var d = $('#div1');
d.animate({ scrollTop: d.prop('scrollHeight') }, 1000);
this.$nextTick(function() {
$('#thing')[0].scrollTop = $('#thing')[0].scrollHeight;
})
d = $('#div1'); $(d).scrollTop( $(d).prop("scrollHeight") );
- loretoparisi$('#div1').scrollTop($('#div1')[0].scrollHeight);
这段代码是有效的。 - Mohamed Raza