nagano

2012.08.23

iPhone向けWEBアプリでCSS3を使って滑らかに画面を切り替える

こんにちは、アライドアーキテクツ長野です。

iPhone向けのWEBアプリを作っていると、滑らかに画面の切り替えがしたくなりますよね!
でもそのためにわざわざライブラリを使いたくない、、ということはよくあると思います。

そこでJavascriptとCSS3だけで滑らかな画面の切り替えをする方法を調べましたので、今回はそれについて書いてみます。

いきなりですが、サンプルです。(iPhoneでみてください)
ボタンを押すと徐々に次のページに切り替わります。

以下にJavascriptのソースを抜粋しました。HTML部分などはサンプルのソースをご覧ください。

アニメーションに関わる部分のみ解説します。
事前処理(①)

切り替え後のページの透明度を0にしておきます。

アニメーション処理(②)

ここで実際にアニメーションをしています。
”-webkit-transition: opacity .5s ease-in-out”
というスタイルをセットしていますが、
これは
・どれくらい時間を掛けるか
・何を対象にするか
・どのような進行割合でアニメーションするか
を定義しています。事前にCSSに書いておくこともできます。

ここでは0.5秒の間に透過度を’ease-in-out'(ゆっくりはじまり、ゆっくり終わる)の進行割合で遷移するよう定義しています。ほかにもlinear等が使えます。
そしてその直後で
“opacity:0”
とセットしており、先にセットされた-webkit-transitionの定義にそってopacityが0になります。

このアニメーションを
・firstは徐々に透過させる
・secondは徐々に表示させる
ことで滑らかに切り替わっているように見せています。

今回は透過による遷移ですが、画面を横にずらす遷移などもできそうですね。