gpt4 book ai didi

html - 创建具有高级滚动功能的 AJAX 聊天。如何?

转载 作者:可可西里 更新时间:2023-11-01 14:58:07 25 4
gpt4 key购买 nike

我需要一些用法示例来了解如何完成此操作。我有一些 HTML:

<div id="chatDisplay">
</div>
<input type="text" id="message" /><input type="button" id="send" value="Send" />

然后我有一些 JQuery:

// This function sets up the ajax that posts chat messages to the server.
$(function()
{
$('#send').click(function ()
{
$.ajax(
{
url: "chat/postmsg",,
data: { msg: $('#message').val(); },
type: "POST",
success: function (response)
{
// Server sends back formated html to append to chatDisplay.
$('#chatDisplay').append(response);
//scroll to bottom of chatDisplay
}
});
});
});

// This function periodically checks the server for updates to the chat.
$(function ()
{
setInterval(function()
{
$.ajax(
{
url: "chat/getupdates",
type: "POST",
success: function (response)
{
// Server sends back any new updates since last check.
// Perform scroll and data display functions. Pseudo-code to follow:

// If (chatDisplay is scrolled to bottom)
// {
// append response to chatDisplay
// scroll to bottom of chatDisplay
// }
// else if (chatDisplay is scrolled up from bottom by any amount)
// {
// append response to chatDisplay, but do not scroll to bottom.
// }
}
});
}, 7000);
});

这只是基本聊天功能的示例,当然不包括服务器端代码。我需要的是如何完成伪代码描述的使用示例。如何检测用户是否滚动到 DIV 的底部,以及如何将它们滚动到底部?如果他们向上滚动查看聊天记录,我不希望他们跳到 DIV 的底部。

我听说过 JQuery 的 ScrollTo 插件,但只需要一些例子。

提前致谢!

编辑:这是为感兴趣的人准备的解决方案。

success: function (response)
{
var elem = $('#chatDisplay');
var atBottom = (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight());
$('#chatDisplay').append(response);
if (atBottom)
$('#chatDisplay').scrollTop($('#chatDisplay')[0].scrollHeight);
}

转到 http://www.jsfiddle.net/f4YFL/4/有关实际操作的示例。

最佳答案

看起来你可以重构你的伪代码:

附加响应到 chatDisplayif(chatDisplay at the bottom){ 滚动到底部 }

这里是如何判断是否滚动到底部的链接:

http://yelotofu.com/2008/10/jquery-how-to-tell-if-youre-scroll-to-bottom/

希望对您有所帮助。

鲍勃

关于html - 创建具有高级滚动功能的 AJAX 聊天。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com