我的页面上有一个div:
<div id='div1' style='overflow:scroll;overflow-x:hidden;max-height:200px;'></div>
我怎样才能使div滚动到div的底部??不是页面,只是DIV。
我的页面上有一个div:
<div id='div1' style='overflow:scroll;overflow-x:hidden;max-height:200px;'></div>
我怎样才能使div滚动到div的底部??不是页面,只是DIV。
当前回答
我在一个遗留代码库中工作,试图迁移到Vue。
在我的特定情况下(在引导模式中包装的可滚动div), v-if显示了新内容,我希望页面向下滚动到这些内容。为了让这种行为工作,我必须等待vue完成重新渲染,然后使用jQuery滚动到模态的底部。
所以…
this.$nextTick(function() {
$('#thing')[0].scrollTop = $('#thing')[0].scrollHeight;
})
其他回答
这里的其他解决方案实际上并不适用于具有大量内容的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);
滚动窗口到目标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');
我在一个遗留代码库中工作,试图迁移到Vue。
在我的特定情况下(在引导模式中包装的可滚动div), v-if显示了新内容,我希望页面向下滚动到这些内容。为了让这种行为工作,我必须等待vue完成重新渲染,然后使用jQuery滚动到模态的底部。
所以…
this.$nextTick(function() {
$('#thing')[0].scrollTop = $('#thing')[0].scrollHeight;
})
你可以检查scrollHeight和clientHeight与scrollTop滚动到div底部像下面的代码。
$ (' # div ')。滚动(函数(事件){ if ((parseInt($('#div')[0].scrollHeight) - parseInt(this.clientHeight)) == parseInt($('#div').scrollTop())) { Console.log("这是div的滚动底部"); } });
更新:请参阅Mike Todd的解决方案以获得完整的答案。
$("#div1").animate({ scrollTop: $('#div1').height()}, 1000);
如果你想让它变成动画(超过1000毫秒)。
$('#div1').scrollTop($('#div1').height())
如果你想要即时的。