For better understanding I am trying to implement chatbox with smooth transition of previous (upper) chat messages.
Here is the http://jsfiddle.net/eEEGE/
When I click “Add” I want all the number 1 – 9 slide up and append 10-12 below it.
Or in other word I want the scrollbar always scrolled fix at bottom.
I know that I can reposition the scrollbar after appending but then I will not able to see sliding animation.
Code Reference
$(document).ready(function(){
// set the default scroll bar to bottom of chat box
$(".chat-list").scrollTop($(".chat-list")[0].scrollHeight);
$("button").click(function(){
$('.chat-list li:last-child').append('10<br/>11<br/>12');
$('.chat-list li:last-child').show('slow');
});
});
<ul class="chat-list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li style="display:none"></li>
</ul>
<button>add</button>
.chat-list{
height:100px;
overflow:auto;
}
Do a callback to
show()which willscrollTop()to the$('.chat-list')[0].scrollHeight.If you want to have an animation then just animate scrollTop property: