Need to scroll to bottom whenever a new div is added at bottom

It has been asked before but I’m not sure that in this context

Here is an Example

Here is the code:

$("button#add-row").on("click",function(){
    $("ul").append("<li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>");
  var $doc = $('html,body');
    $doc.animate({scrollTop: $doc.height()}, 500);
});

As you can see $doc.animate({scrollTop: $doc.height()}, 500) the jQuery animate has property called scrollTop which its value (the height of the document) is setting the scroll position.

In the Example I’m calling it whenever a button is pushed but you can easily add it to your chat-bot response callback.

You should improve this by blocking new animation firing before the previous one has ended – But this is another topic.

$("button#add-row").on("click",function(){
	$("ul").append("<li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>");
  var $doc = $('html,body');
	$doc.animate({scrollTop: $doc.height()}, 500);
});
ul {
  width:80%;
  margin:0;
}
li {
  padding:20px;
  border:1px solid black;
  margin:20px;
}
button {
  position:fixed;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id="add-row">
Add a new row
</button>
<ul>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
  <li>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</li>
</ul>

Leave a Comment