Javascript 如何检查滚动是由代码还是由用户完成的?

Javascript 如何检查滚动是由代码还是由用户完成的?,javascript,jquery,html,Javascript,Jquery,Html,我目前正在建立一个聊天室。在我的聊天中,我有一个输入。如果在“我的输入”中键入内容并按enter键,则会添加一条新消息get,并向下滚动列表get,以使新消息可见而不隐藏 问题是我在滚动事件中做了一些特殊的事情,只有当用户向下滚动时才会触发,而不是我添加新消息的功能 那我该怎么做呢 我已经尝试了.on(“鼠标滚轮”,函数(){),但是如果我在列表的末尾,并且我仍然尝试向下滚动,即使再也没有什么可去的,也会触发此事件get jQuery(文档).ready(函数($){ $(“#消息”)。滚动(

我目前正在建立一个聊天室。在我的聊天中,我有一个输入。如果在“我的输入”中键入内容并按enter键,则会添加一条新消息get,并向下滚动列表get,以使新消息可见而不隐藏

问题是我在滚动事件中做了一些特殊的事情,只有当用户向下滚动时才会触发,而不是我添加新消息的功能

那我该怎么做呢

我已经尝试了
.on(“鼠标滚轮”,函数(){
),但是如果我在列表的末尾,并且我仍然尝试向下滚动,即使再也没有什么可去的,也会触发此事件get

jQuery(文档).ready(函数($){
$(“#消息”)。滚动(函数(){
log(“滚动!”);
} );
$(“输入”)。按键(功能(e){
if(e.which==13&&!e.shiftKey){
$(“#消息”).scrollTop($(“#消息”).prop(“scrollHeight”);
$(“#消息”).append(“+$(this.val()+”);
$(此).val(“”);
}
} );
});
#消息{
边框:1px实心;
最大高度:200px;
溢出y:滚动;
}
#消息>div{
边缘底部:15px;
左:3%;
右:3%;
}
.留言,对{
文本对齐:右对齐;
}
.分隔跨度{
填充:6px 12px;
文本对齐:居中;
线高:1;
背景:灰色;
颜色:#fff;
边界半径:6px;
}
.日期区{
利润上限:-35px;
}
.垫片{
高度:35px;
}
输入{
边缘顶部:10px;
宽度:100%;
}

Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht

您可以在
$(“#消息”)中添加一个条件。滚动(…)
。在这里,我使用
scrollCauseByNewMessage
变量来确定当滚动是由输入新消息引起的,以及当滚动是由实际滚动引起的时,该怎么办

jQuery(文档).ready(函数($){
让scrollCauseByNewMessage=false
$(“#消息”)。滚动(函数(){
if(滚动causebynewmessage){
scrollCauseByNewMessage=false
//做其他事情
返回
}
//在这里执行特殊的滚动功能
否则{
log(“滚动!”);
}
});
$(“输入”)。按键(功能(e){
if(e.which==13&&!e.shiftKey){
scrollCauseByNewMessage=true
$(“#消息”).scrollTop($(“#消息”).prop(“scrollHeight”);
$(“#消息”).append(“+$(this.val()+”);
$(此).val(“”);
}
});
});
#消息{
边框:1px实心;
最大高度:200px;
溢出y:滚动;
}
#消息>div{
边缘底部:15px;
左:3%;
右:3%;
}
.留言,对{
文本对齐:右对齐;
}
.分隔跨度{
填充:6px 12px;
文本对齐:居中;
线高:1;
背景:灰色;
颜色:#fff;
边界半径:6px;
}
.日期区{
利润上限:-35px;
}
.垫片{
高度:35px;
}
输入{
边缘顶部:10px;
宽度:100%;
}

Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht
Testnachricht