我有一個即時聊天程序,我用HTML5/CSS,Asynch創建。 Javascript和PHP。我有一個時間間隔,不斷檢查用戶的聊天框div
被滾動到底部,以方便用戶。當用戶希望向上滾動查看先前的消息時,這成爲一個問題,所以我嘗試了onscroll
事件來停止間隔。我無法讓這個工作,所以走了更長的路,通過使用onmouseover
和onmouseout
事件來啓動和停止時間間隔。Javascript onscroll事件不被稱爲
這對桌面電腦來說非常合適,因爲它們具有可見的鼠標。但是,對於移動設備,例如我的Windows手機(該程序主要是爲該手機設計的),首先必須點擊該消息框(大概是先將不可見的移動鼠標移動到聊天框上),然後滾動手指移動不受影響。
這不是一個主要問題,因爲我可以通知移動用戶先點擊然後滾動,但我覺得成功使用onscroll
事件將與桌面用戶的可用性相匹配。
onscroll
事件是否存在已知問題?我敢說,我熟悉JS事件,並可以適當地使用它們,但這是我在FF或IE中唯一無法實現的事件。
任何想法或幫助,將不勝感激, 李。
以下是管理啓用/停用滾動檢查的當前事件,其中ScrollCheck()是檢查滾動位置並將其移動的函數(如果不在底部),scrollInterval是保存間隔標識的全局變量。
document.getElementById('messages').onmouseover = function()
{
clearInterval(scrollInterval);
}
document.getElementById('messages').onmouseout = function()
{
scrollInterval = setInterval(ScrollCheck, 300);
}
我只是取代了onmouseover
事件onscroll
沒有任何的運氣。
問題需要代碼?你做了什麼? –
如果您的onscroll事件處理程序只做日誌「Got here!」會發生什麼?到控制檯?那樣有用嗎? – dgvid
@Juan爲你添加了我的代碼。 – Lee