Javascript 当用户手动滚动时,如何防止自动滚动?
我有一个聊天应用程序,其中聊天信息显示在一个div(id:messages\u container)中 每5秒钟,AJAX请求响应会将新消息附加到messages_容器中。我使用代码在新消息到达时自动滚动到div的底部 这是我使用的代码:Javascript 当用户手动滚动时,如何防止自动滚动?,javascript,jquery,html,scroll,Javascript,Jquery,Html,Scroll,我有一个聊天应用程序,其中聊天信息显示在一个div(id:messages\u container)中 每5秒钟,AJAX请求响应会将新消息附加到messages_容器中。我使用代码在新消息到达时自动滚动到div的底部 这是我使用的代码: $("#messages_container").prop({ scrollTop: $("#messages_container").prop("scrollHeight") }); 如果用户希望看到早期的消息,他会向上滚动div。问题是,当他手动滚动时,
$("#messages_container").prop({ scrollTop: $("#messages_container").prop("scrollHeight") });
如果用户希望看到早期的消息,他会向上滚动div。问题是,当他手动滚动时,自动滚动会工作,然后将用户带到div的底部
当用户手动滚动时,如何防止自动滚动?
我们有滚动事件吗
请帮助我。您可以像下面这样检查用户滚动,然后像下面一样使用滚动禁用功能
//detect user scrolling or browser scrolling start
var userScroll = false;
function mouseEvent(e) {
userScroll = true;
}
if(window.addEventListener) {
document.addEventListener('DOMMouseScroll', mouseEvent,false);
}
// detect browser/user scroll
$(document).scroll( function(){
console.log('Scroll initiated by ' + (userScroll == true ? "user" : "browser"));
});
//detect user scrolling or browser scrolling end
//this is for scroll disableing
window.onmousewheel = document.onmousewheel = function(e) {
e = e || window.event;
if (e.preventDefault)
e.preventDefault();
e.returnValue = false;
};
用于滚动禁用参考