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


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

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

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

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

この記事は2013-09-12の記事の転載です