2

为了更好地理解,我正在尝试通过平滑过渡先前(上部)聊天消息来实现聊天框。

这是http://jsfiddle.net/eEEGE/

当我单击“添加”时,我希望所有数字 1 - 9 向上滑动并在其下方附加 10-12。

或者换句话说,我希望滚动条总是在底部滚动修复。

我知道我可以在附加后重新定位滚动条,但是我将看不到滑动动画。

代码参考

$(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;
}
4

1 回答 1

5
    $(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');
// Do a callback for show()
            $('.chat-list li:last-child').show('slow', function() {
             $(".chat-list").scrollTop($(".chat-list")[0].scrollHeight);
            });        
        });
    });

对. show()_ scrollTop()_$('.chat-list')[0].scrollHeight

如果你想要一个动画,那么只需为 scrollTop 属性设置动画:

$(".chat-list").animate({
    scrollTop: $(".chat-list")[0].scrollHeight
 },'slow');
于 2013-01-31T08:10:33.373 回答