ナビ

ページ切り替え時のトランジション効果

wrote :

スマートフォンが普及し、タッチパネルによるページ切り替えが新たなUIとして浸透してきました。
たとえば、指で横にしゅっとやると画面は右から左にスライドされ、ナビゲーションが表示されたりするアレです。

このような動きはPCでは敬遠された機能でした。
というのも、ページ切り替え時でのスライドするようなトランジション効果はIEの独自機能で一時流行りましたが、ユーザビリティをむしろ悪くしているという理由からです。
その後、トランジション効果を適用しているサイトをほとんど見なくなりました。

しかし、です。
スマートフォンの普及、またCSS3の新機能transitionプロパティの影響で、ページ単位でのトランジション効果を見直してほしいと思うのです。

たとえば、コンテンツとナビゲーションを含むページで、UIを控えめにすべく、コンテンツとナビゲーションを同時に表示せず、切り替えるイベントを用意している場合(スマートフォンでは容易に考えられるケース)、もはやコンテンツとナビゲーションを同一ページで用意する必要がないかもしれません。その場合、ユーザーには他ページに切り替わる、という印象を残さずに、あたかも同一ページでの挙動をしていると見せるにはページ遷移時のトランジション効果が最適です。

実際には、jQuery mobile を利用すればページ遷移時のトランジション効果を実現できます(jQuery mobileデモ:Webkitのレンダリングを使用しているSafariやChromeで確認可能)が、もっとシンプルに、IE独自で実装されているmetaタグでのページ切り替え時のトランジション効果を他のモダンブラウザでも実行されるよう開発されてほしいものです。

長い前置きでしたが、あらためてIEのみに有効ですが、metaタグを利用したページ切り替え時のトランジション効果をまとめます。

ページ切り替え時のトランジション効果サンプル(IEでのみ有効)

<meta http-equiv="page-enter" content="revealtrans(duration=1, transition=0)" />

http-equiv="page-enter"

http-equiv値として、ほかにpage-exitもありますが、遷移先のページを読み込んでからの処理となるため、遷移先の容量が大きい場合には、なかなか遷移できないことになるので、page-enterを使うほうがよいとのこと。

content="revealtrans(duration=1, transition=0)"

duration
トランジション効果の時間(0~30)
transition
トランジション効果の種類(0~23)

content値として、他にもblendtrans(duration=1)があり、フェードイン効果があるのですが、遷移先のページを読み込んでからの処理となるため、遷移先の容量が大きい場合には使用を控えたほうがよさそうです。

metaタグの位置

他のmetaタグより先に記述したほうがいいそうです。
でないと、うまくトランジションされないケースがあるそうです。

トランジションの使いどころ

とはいえ、やりすぎは禁物です。
iPadユーザエクスペリエンスガイドラインにあるように、「フルスクリーントランジションを減らす」「モーダリティを最小限にする」といったことに配慮したいです。

そもそもIEのみでの有効のため、このmeta自体使わないかもですが、、、。
クロスブラウザで対応されることを期待して本記事を終えたいと思います。