我有一个使用 HTML5/CSS、Asynch 创建的即时聊天程序。Javascript 和 PHP。我有一个间隔是不断检查用户的聊天框div
是否滚动到底部以方便用户使用。当用户希望向上滚动以查看以前的消息时,这成为一个问题,因此我尝试使用该onscroll
事件来停止间隔。我无法让它工作,因此通过使用onmouseover
andonmouseout
事件开始和停止间隔走了更长的路。
这对于台式计算机来说非常适用,因为它们有一个可见的鼠标。然而,对于移动设备,例如我的 Windows 手机 - 该程序主要设计用于,存在一个问题,因为您首先必须点击消息框(大概是首先将不可见的移动鼠标移动到聊天框上)然后滚动手指移动滚动不受影响。
这不是主要问题,因为我可以通知移动用户先点击然后滚动,但我觉得成功使用该onscroll
事件将与桌面用户的可用性相匹配。
活动是否存在已知问题onscroll
?我敢说我熟悉 JS 事件并且可以适当地使用它们,但这是我在 FF 或 IE 中没有设法开始工作的唯一事件。
任何想法或帮助将不胜感激,李。
以下是管理滚动检查开/关的当前事件,其中 ScrollCheck() 是检查滚动位置并在不在底部时将其移动的函数,而 scrollInterval 是保存间隔 id 的全局变量。
document.getElementById('messages').onmouseover = function()
{
clearInterval(scrollInterval);
}
document.getElementById('messages').onmouseout = function()
{
scrollInterval = setInterval(ScrollCheck, 300);
}
我只是将onmouseover
事件替换为onscroll
没有任何运气。