iOS SafariでドラッグするとrequestAnimationFrameが止まる件

JSでrequestAnimationFrameを使ってアニメーションさせるとき、 ネイティブのスクロールが発生するとスクロール中はrequestAnimationFrameが一時的に止まるらしい。厳密にはする時としないときがあった。

スワイプジェスチャーを実装してドラッグに応じてアニメーションさせようとしていたのですが、 要はブラウザがスクロールするとザ・ワールド!してしまうという感じらしい。 困った。

今回はフルスクリーン想定なのでtouchmoveでe.preventDefault()すればよかったが、 ネイティブのスクロールと併用すると困るパターンが出てきそう。

@GekoTangの言うとおりtouchstartでpreventDefaultでも良いのだけど、それだと子要素のclickイベントも死んでしまうため、touchmoveでスクロール抑止しました。