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