It has been asked before but I’m not sure that in this context
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>