当出现新消息时,您知道大多数聊天内容,滚动条是否会下降.我的聊天每5000毫秒重新加载一次,然后在300毫秒后拖动滚动.
但我想做到这一点,所以当用户向上拖动向上滚动时,滚动拖动不会影响他.是否有一个函数,一旦用户向上滚动,填充变量,如draggedScroll = true?
http://driptone.com/jony/applications/chat/index.php
这是聊天,如你所见,如果你上去,它会每隔5000毫秒拖动你,我想只在用户向上滚动时阻止它.如果用户再次滚动到底部[0],它将使draggedScroll = false,因此它将再次影响他.
我怎么做?
问题还没有解决!
问题解释:
滚动会 仅工作IF滚动的高度将是在-至少1500px(scrollTop的(1500) )(34 个聊天消息).
如果低于该值,滚动将不起作用,并将向上滚动新消息.
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.
如果是,则向下滚动.否则保持相同的位置.