当用户手动滚动时,如何防止自动滚动?
How can I prevent auto scroll when the user is manually scrolling?
我有一个聊天应用程序,其中聊天消息显示在一个div (id: messages_container)
AJAX请求-响应每5秒向messages_container添加新消息。当新消息到达时,我使用代码自动滚动到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;
};
禁用滚动参考http://ajax911.com/disable-window-scroll-jquery/
相关文章:
- 如何防止firefox在打开大型弹出窗口时滚动到页面底部
- 停止触摸滚动还可以防止单击链接
- 如何防止我的引导可折叠框滚动页面
- 引导表单向导 - 防止在提交 ajax 响应的每个页面表单出现错误时滚动到下一步
- 如何在使用“显示和隐藏锚定标记”时防止滚动页面
- 在可滚动容器上拖动时防止自动滚动
- 为什么每次滑动后页面都会向上滚动向下以及如何防止这种情况发生
- 地图框-防止地图在页面上滚动时缩放
- 防止在刷新长HTML页面时滚动跳转
- 防止jQuery在固定导航上滚动
- 在添加固定位置时防止页面滚动到顶
- 固定侧边栏滚动,防止按下页脚
- 防止jQuery操作在滚动时再次发生
- 如何使用Javascript防止页面滚动上的剑道下拉列表崩溃
- 防止打开弹出窗口时出现页面滚动条
- 有没有办法防止浏览器缓存滚动位置和缩放级别等值
- 防止 Skrollr.js 滚动到特定锚点
- 动画滚动脚本可防止从外部链接访问本地锚点位置
- jquery模态防止滚动和防止移动回到页面顶部的模态打开
- 如何使浮动标题列水平滚动并防止它们向左对齐