Javascript 聊天系统的滚动条一直在自动向下滚动

Javascript 聊天系统的滚动条一直在自动向下滚动,javascript,php,html,jquery,Javascript,Php,Html,Jquery,我使用jQuery和ajax创建了一个简单的聊天系统,我希望滚动条在两种情况下位于div的底部,即: _第一次加载页面。 _新消息已经到达。 问题是滚动条一直在自动向下滚动。 这是我的html和javascript代码 函数加载(){ $.post(“action.php”{ 行动:“获取” },功能(resp){ var scrollTop=$('#shoot')。scrollTop(); var clientheight=$('#shoot').height(); var scrollTo

我使用jQuery和ajax创建了一个简单的聊天系统,我希望滚动条在两种情况下位于div的底部,即: _第一次加载页面。 _新消息已经到达。 问题是滚动条一直在自动向下滚动。 这是我的html和javascript代码

函数加载(){
$.post(“action.php”{
行动:“获取”
},功能(resp){
var scrollTop=$('#shoot')。scrollTop();
var clientheight=$('#shoot').height();
var scrollTop=parseInt(scrollTop)+320;
var scrollHeight=$('#shoot').prop(“scrollHeight”);
$('#shoot').html(resp);
如果(滚动顶部<滚动高度){
}否则{
$('拍摄').scrollTop()=$('拍摄').prop(“滚动高度”);
}
});
}

与哈立德聊天
1767条消息

  • 视图配置文件
  • 添加到好友
  • 添加到组
  • 挡块
嗨,萨米,你好吗? 嗨,哈立德,我很好,tnx,你呢?
您能先更正这行吗:

$('#shoot').scrollTop(  $('#shoot').prop("scrollHeight") );
/* $('#shoot').scrollTop() = $('#shoot').prop("scrollHeight"); */
然后重试?因为更改
scrollTop
位置的正确方法是向jQuery函数传递一个参数

另外,您说过“滚动条一直在自动向下滚动”-但不清楚何时/多久调用load()函数。因为,从您的代码来看,似乎在每次调用之后,无论响应如何,您都会运行一个滚动动作。如果你只想在新消息时自动滚动,那么你应该检查一下。例如,如果没有新消息,则使“action.php”返回false,如果响应为false,则在加载函数中不要执行任何滚动操作。

对于使用
$(“#shoot”).animate({scrollTop:$('#shoot').prop(“scrollHeight”)},1000)这会使滚动条一直向下滚动,因此您必须将其更改为

$('shoot').scrollTop($('shoot').prop(“scrollHeight”),这是到达滚动条新位置的正确方法,而无需强制滚动条停留在特定位置。

verjas实际上在我的代码中是这样的(而不是
$('#shoot')。scrollTop()=$('#shoot')。prop(“scrollHeight”);
这是
$(“#shoot”)。动画({scrollTop:$('#shoot')).prop(“scrollHeight”)},1000);
,这就是问题的原因,因此您的答案是正确的。我们应该使用正确的方法更改scrollTop位置