iOS SafariでドラッグするとrequestAnimationFrameが止まる件
JSでrequestAnimationFrameを使ってアニメーションさせるとき、 ネイティブのスクロールが発生するとスクロール中はrequestAnimationFrameが一時的に止まるらしい。厳密にはする時としないときがあった。
スワイプジェスチャーを実装してドラッグに応じてアニメーションさせようとしていたのですが、 要はブラウザがスクロールするとザ・ワールド!してしまうという感じらしい。 困った。
今回はフルスクリーン想定なのでtouchmoveでe.preventDefault()すればよかったが、 ネイティブのスクロールと併用すると困るパターンが出てきそう。
@doke touchstartでpreventDefaultして、ネイティブのスクロール殺せばいけませんでしたっけ
— げこたん (@GeckoTang) 2013, 9月 12
@GekoTangの言うとおりtouchstartでpreventDefaultでも良いのだけど、それだと子要素のclickイベントも死んでしまうため、touchmoveでスクロール抑止しました。