AJAX Chat - 自动向下拖动向下滚动,但在用户向上滚动时不要拖动它?

Jon*_*ale 9 jquery scroll

当出现新消息时,您知道大多数聊天内容,滚动条是否会下降.我的聊天每5000毫秒重新加载一次,然后在300毫秒后拖动滚动.

但我想做到这一点,所以当用户向上拖动向上滚动时,滚动拖动不会影响他.是否有一个函数,一旦用户向上滚动,填充变量,如draggedScroll = true?

http://driptone.com/jony/applications/chat/index.php

这是聊天,如你所见,如果你上去,它会每隔5000毫秒拖动你,我想只在用户向上滚动时阻止它.如果用户再次滚动到底部[0],它将使draggedScroll = false,因此它将再次影响他.

我怎么做?

问题还没有解决!

问题解释:

滚动会 工作IF滚动的高度将是在-至少1500px(scrollTop的(1500) )(34 个聊天消息).

如果低于该值,滚动将不起作用,并将向上滚动新消息.

Jon*_*ale 5

function reload() {
    var oldscrollHeight = ($("#chat").scrollTop() + 470);
    console.log(" old: " + oldscrollHeight);
    $.post("ajax.php", { loadMessages : "1" }, function(data) {
        $(".discussion").html(data); 
        var newscrollHeight = $("#chat").prop("scrollHeight");
        console.log(" new: " + newscrollHeight);
        if(newscrollHeight < (oldscrollHeight + 150)) {
            var height = $('#chat')[0].scrollHeight;
            $('#chat').scrollTop(height);
        }           
    });     
}
Run Code Online (Sandbox Code Playgroud)

基本上我在那里做了什么,我采取了卷轴的当前位置,并添加了470像素(因为它将始终低于整个高度).

然后检查,如果新高度<<旧高度+ 150px.

如果是,则向下滚动.否则保持相同的位置.