JavaScript / JQueryを使用して、水平方向にスクロール可能なdivのコンテンツを更新しています。ユーザーがスクロールしているときにコンテンツを更新しないようにする必要があります。通常のブラウザでは、onscrollイベントがユーザーの終了を通知するため、これは簡単です。
残念ながら、iPadではそれほど簡単ではありません。iPadには2つのシナリオがあります。
- ユーザーはゆっくりとスクロールして指を離します。ここでは、「タッチエンド」イベントが発生し、それだけです。
- ユーザーはすばやくスクロールし、スワイプの途中で指を離します。ここでは、指を離すとタッチエンドが起動しますが、デバイスはスワイプの「勢い」を使用して1〜2秒間スクロールを続けます。停止すると、「スクロール」イベントが発生します。
問題は、シナリオ2が発生していることを知る方法がないことです。タッチエンドイベントはどちらの場合も発生し、スクロールイベントが発生するかどうかを確認する以外に、発生することを知る方法はありません。
さらに悪いことに、iPadはスクロールが終了した後にのみdivのscrollLeftプロパティを更新します(どちらのシナリオでも)。そのため、scrollLeftがまだ変更されているかどうかを定期的に確認することはできません)。
では、divコンテンツのスクロールが終了したことをどのように知ることができますか?