在页面加载时滚动到Div的底部(jQuery)
我的网页上有一个div:
<div id='div1' style='overflow:scroll;overflow-x:hidden;max-height:200px;'></div>
如何使div滚动到div的底部? 不是页面,只是DIV。
这里的其他解决scheme实际上并不适用于包含大量内容的div – 它会“最大化”滚动到div的高度(而不是div的内容的高度)。 所以他们会工作,除非你的内容高度超过div的两倍。
这是正确的版本:
$('#div1').scrollTop($('#div1')[0].scrollHeight);
或jQuery 1.6+版本:
var d = $('#div1'); d.scrollTop(d.prop("scrollHeight"));
或animation:
$("#div1").animate({ scrollTop: $('#div1').prop("scrollHeight")}, 1000);
我在这里可以看到的所有答案,包括目前被“接受”的答案,其实都是错误的,
scrollTop = scrollHeight
鉴于正确的做法是设定:
scrollTop = scrollHeight - clientHeight
换一种说法:
$('#div1').scrollTop($('#div1')[0].scrollHeight - $('#div1')[0].clientHeight);
或animation:
$("#div1").animate({ scrollTop: $('#div1')[0].scrollHeight - $('#div1')[0].clientHeight }, 1000);
更新:请参阅迈克托德的解决scheme的完整答案。
$("#div1").animate({ scrollTop: $('#div1').height()}, 1000);
如果你想要animation(超过1000毫秒)。
$('#div1').scrollTop($('#div1').height())
如果你想要瞬间。
$(window).load(function() { $("html, body").animate({ scrollTop: $(document).height() }, 1000); });
这会抓取页面的高度,并在窗口加载后将其向下滚动。 一旦页面准备就绪,将1000
更改为更快更慢的操作。
尝试这个:
$('#div1').scrollTop( $('#div1').height() )
滚动窗口到目标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');
以下将工作。 请注意[0]
和scrollHeight
$("#myDiv").animate({ scrollTop: $("#myDiv")[0].scrollHeight }, 1000);
在jQuery中animation(版本> 2.0)
var d = $('#div1'); d.animate({ scrollTop: d.prop('scrollHeight') }, 1000);
这些工作都没有为我工作,我有一个类似于Facebook Messenger的Web应用程序内的消息系统,并希望消息出现在一个div的底部。
这工作了一个款待,基本的Javascript。
window.onload=function () { var objDiv = document.getElementById("MyDivElement"); objDiv.scrollTop = objDiv.scrollHeight; }