HTML5/CSS、Asynch で作成したインスタント チャット プログラムがあります。Javascript と PHP。div
ユーザーの利便性のために、ユーザーのチャット ボックスが一番下までスクロールされていることを常に確認する間隔があります。これは、ユーザーが前のメッセージを表示するために上にスクロールしたいときに問題になったのでonscroll
、間隔を停止するイベントを試みました。私はこれを機能させることができなかったのでonmouseover
、onmouseout
イベントを使用して間隔を開始および停止することで、より長い道のりを歩んできました。
デスクトップ コンピューターにはマウスが表示されるため、これは問題なく機能します。ただし、プログラムが主に設計されているWindows phoneなどのモバイルデバイスの場合、最初にメッセージボックスをタップする必要があるため(おそらく最初に非表示のモバイルマウスをチャットボックスに移動するため)、次にスクロールする必要があるため、問題があります影響を受けずにスクロールする指の動き。
これは、モバイル ユーザーに最初にタップしてからスクロールするように伝えることができるため、大きな問題ではありませんが、イベントをうまく使用するonscroll
と、デスクトップ ユーザーとの使いやすさが一致すると思います。
onscroll
イベントに関する既知の問題はありますか? 私はJSイベントに精通しており、それらを適切に使用できるとあえて言いますが、FFまたはIEでうまく機能していないイベントはこれだけです。
考えや助けをいただければ幸いです、リー。
scrollcheck のオン/オフを管理する現在のイベントは次のとおりです。ScrollCheck() はスクロール位置をチェックし、一番下にない場合は移動する関数であり、scrollInterval は間隔の ID を保持するグローバル変数です。
document.getElementById('messages').onmouseover = function()
{
clearInterval(scrollInterval);
}
document.getElementById('messages').onmouseout = function()
{
scrollInterval = setInterval(ScrollCheck, 300);
}
私は単にonmouseover
イベントをonscroll
運のないものに置き換えました。