【发布时间】:2016-04-25 06:54:24
【问题描述】:
我有过去几天无法解决的问题。我编写了基于 PHP + jQuery 的简单聊天。我有聊天内容的 div:
<div class="conversation-message-list" onclick="hideEmoticons()">
<div id="note">New message</div>
<div class="conversation-content">
<div class="row">
MESSAGE
</div>
</div>
</div>
使用 jQuery,我调用函数 refreshChat。这会从 mysql 中选择新消息并附加到对话内容,如下所示:
$(".conversation-content").append(data.chat);
当有很多消息时,聊天窗口正在滚动。我需要做的是:当聊天窗口在底部滚动时(用户查看最后一条消息),新消息将附加并自动滚动到最后一条消息。如果用户向上滚动并附加新消息,则仅显示消息(在我的代码中 id="note")但不要滚动到最后一条消息。
总之,我需要与 FB 聊天相同的功能 - 如果您向上滚动,聊天窗口中只会显示新消息警告。如果您聊天并看到聊天底部,新消息将显示并在其上滚动。
我陷入了恶性循环,我试图玩 $(".conversation-message-list").innerHeight() 和 $(".conversation-message-list").scrollTop() 和 $(".conversation-message-list")[0].scrollHeight) 但我无法做到,我需要什么。谢谢你。
这里是 refreshChat 函数的例子:
function refreshChat() {
var id = "'.$convers_id.'";
var receiver = "'.$system->getFirstName($second_user->full_name).'";
$.getJSON("'.$system->getDomain().'/ajax/refreshChat.php?id="+id, function(data) {
if(data.kod != "" && data.kod != " " && data.isNew == "1") {
// Here I want to implement that function
$(".conversation-content").append(data.chat);
}
}
}
【问题讨论】:
标签: javascript php jquery html ajax