我正在使用 JavaScript/JQuery 来更新可水平滚动的 div 的内容。我需要避免在用户滚动时更新内容。在普通浏览器中,这很容易,因为 onscroll 事件会告诉我用户何时完成。
不幸的是,这在 iPad 上并不容易。iPad上有2个场景:
- 用户慢慢滚动并松开手指——这里会触发一个“touchend”事件,仅此而已。
- 用户快速滚动并在滑动中松开手指——当他们抬起手指时,触摸端会触发,但设备将使用滑动的“动量”继续滚动一两秒。一旦它停止,就会触发一个“滚动”事件。
问题是,没有办法知道情况 2 正在发生。touchend 事件在这两种情况下都会发生,并且除了等待查看是否会触发滚动事件之外,无法知道是否会触发滚动事件。
更糟糕的是,iPad 仅在滚动完成后更新 div 的 scrollLeft 属性(在任一情况下)。所以我不能定期检查 scrollLeft 是否仍在变化)。
那么如何知道 div 内容已经滚动完毕呢?