未调用Javascript onscroll事件
Javascript onscroll event not being called
我用HTML5/CSS创建了一个即时聊天程序Asynch。Javascript和PHP。我有一个时间间隔,不断检查用户的聊天框div
是否滚动到底部,以方便用户使用。当用户希望向上滚动查看以前的消息时,这就成了一个问题,所以我尝试了onscroll
事件来停止间隔。我无法实现这一点,因此使用onmouseover
和onmouseout
事件来启动和停止间隔。
这对台式电脑来说非常好,因为它们有一个可见的鼠标。然而,对于移动设备,比如我的Windows手机(该程序主要是为它设计的),存在一个问题,因为你必须首先点击消息框(大概是先将看不见的移动鼠标移动到聊天框上),然后用手指移动滚动以不受影响地滚动。
这不是一个大问题,因为我可以通知移动用户先点击然后滚动,但我觉得成功使用onscroll
事件将与桌面用户的可用性相匹配。
onscroll
事件是否存在已知问题?我敢说我熟悉JS事件,可以适当地使用它们,但这是我在FF或IE中唯一没有成功工作的事件。
任何想法或帮助都将不胜感激,李。
以下是管理滚动检查打开/关闭的当前事件,其中scrollcheck()是检查滚动位置的函数,如果不在底部,则将其移动;scrollInterval是保存间隔id的全局var。
document.getElementById('messages').onmouseover = function()
{
clearInterval(scrollInterval);
}
document.getElementById('messages').onmouseout = function()
{
scrollInterval = setInterval(ScrollCheck, 300);
}
我只是简单地将onmouseover
事件替换为onscroll
,没有任何运气。
当我创建聊天页面时,我只在添加新消息时检查滚动:
var currentScroll = elem.scrollTop, oldmaxScroll = elem.scrollHeight-elem.clientHeight;
// add new message(s) here
var newmaxScroll = elem.scrollHeight-elem.clientHeight;
if( currentScroll == oldmaxScroll) elem.scrollTop = newmaxScroll;
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 未调用Javascript onscroll事件
- 在应用程序中使用 HtmlCtrl 时,“scrollHeight”未在“onscroll”事件处理程序中更新,但在 I
- 禁用预测滚动 - 鼠标滚轮 (OnScroll) 事件触发过于频繁(触摸板)
- onScroll事件未启动else{}函数
- 需要Grid onscroll事件
- “onwheel”和“onwheel”有什么区别?和“;onscroll"事件
- 包含外部wesbite的Iframe不会触发onscroll事件处理程序
- Onscroll事件不工作
- 检测浏览器是否支持onscroll事件
- 如何检测一个iframe上的onscroll事件?iframe's源与页面的域相同
- 多次调用onScroll事件
- 在IE11中没有调用onScroll事件
- Ionic:获取ionicScroll onScroll事件
- 如何在window.onscroll事件中只调用一次javascript函数
- onscroll事件仅执行一次
- 是否可能有一个没有内容溢出的onscroll事件?
- 固定粘头跳转后onscroll事件