在页面加载(jQuery)上滚动到Div的底部

Dob*_*tJr 220 html jquery

我的页面上有一个div:

<div id='div1' style='overflow:scroll;overflow-x:hidden;max-height:200px;'></div>
Run Code Online (Sandbox Code Playgroud)

如何让div滚动到div的底部?不是页面,只是DIV.

Mik*_*odd 566

这里的其他解决方案实际上并不适用于具有大量内容的div - 它"最大化"向下滚动到div的高度(而不是div 内容的高度).所以他们会工作,除非你的div内容高度超过div的两倍.

这是正确的版本:

$('#div1').scrollTop($('#div1')[0].scrollHeight);
Run Code Online (Sandbox Code Playgroud)

或者jQuery 1.6+版本:

var d = $('#div1');
d.scrollTop(d.prop("scrollHeight"));
Run Code Online (Sandbox Code Playgroud)

或动画:

$("#div1").animate({ scrollTop: $('#div1').prop("scrollHeight")}, 1000);
Run Code Online (Sandbox Code Playgroud)

  • 这也有效:$('#div1').scrollTop($('#div1').attr("scrollHeight")); (5认同)
  • 如何在不将绝对高度(以px为单位)设置为"div1"的情况下完成此工作? (2认同)

pat*_*pam 51

我在这里看到的所有答案,包括当前"被接受"的答案,实际上是错误的,因为它们设置:

scrollTop = scrollHeight
Run Code Online (Sandbox Code Playgroud)

而正确的方法是设置:

scrollTop = scrollHeight - clientHeight
Run Code Online (Sandbox Code Playgroud)

换一种说法:

$('#div1').scrollTop($('#div1')[0].scrollHeight - $('#div1')[0].clientHeight);
Run Code Online (Sandbox Code Playgroud)

或动画:

$("#div1").animate({
  scrollTop: $('#div1')[0].scrollHeight - $('#div1')[0].clientHeight
}, 1000);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,似乎像一个魅力:D (2认同)

Ale*_*eon 22

更新:请参阅Mike Todd的解决方案以获得完整的答案.


$("#div1").animate({ scrollTop: $('#div1').height()}, 1000);
Run Code Online (Sandbox Code Playgroud)

如果你想要它动画(超过1000毫秒).

$('#div1').scrollTop($('#div1').height())
Run Code Online (Sandbox Code Playgroud)

如果你想瞬间.

  • 错误!.height()仅限于显示区域.prop("scrollHeight")是div的实际高度. (8认同)
  • 绝对!这就是为什么迈克·托德的【答案】(http://stackoverflow.com/a/11551414/1065525)是公认的一个,不是我的. (5认同)

Cho*_*rds 15

$(window).load(function() {
  $("html, body").animate({ scrollTop: $(document).height() }, 1000);
});
Run Code Online (Sandbox Code Playgroud)

这会抓取页面的高度,并在窗口加载后将其向下滚动.1000页面准备好后,将更改为更快/更慢的更改.

  • 德勤.相同的逻辑,不同的选择器 (2认同)

小智 9

这些都不适合我,我在一个类似于 Facebook Messenger 的网络应用程序中有一个消息系统,并希望消息出现在 div 的底部。

这很好用,基本的 Javascript。

window.onload=function () {
     var objDiv = document.getElementById("MyDivElement");
     objDiv.scrollTop = objDiv.scrollHeight;
}
Run Code Online (Sandbox Code Playgroud)


und*_*ned 7

试试这个:

$('#div1').scrollTop( $('#div1').height() )
Run Code Online (Sandbox Code Playgroud)


小智 5

滚动窗口到目标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');
Run Code Online (Sandbox Code Playgroud)


小智 5

以下将起作用。请注意[0]scrollHeight

$("#myDiv").animate({ scrollTop: $("#myDiv")[0].scrollHeight }, 1000);
Run Code Online (Sandbox Code Playgroud)


dpi*_*eda 5

用于jquery中的动画(版本> 2.0)

var d = $('#div1');
d.animate({ scrollTop: d.prop('scrollHeight') }, 1000);
Run Code Online (Sandbox Code Playgroud)