見せたいもののメリハリをつけるのがコツ
「限られたスペースに複数の情報を入れたい。でも別ページにするほどでもない……」
そんなとき、タブでコンテンツを切り替えられると便利です。タブ切り替えは、Yahooのトップページで使われているように、かなり浸透してきています。
このUIを使うポイントは、以下のように重点的に見せたいコンテンツとそうでないもののメリハリをつけて使うことです。
- 特集などの一部のコンテンツに使う
- ニュースであれば一番見せたいカテゴリーのものをはじめに見せておいて、重要度の低いものは別のタブコンテンツとする
- サイドバーに置いたトピックスを、アーカイブと最新のもので分ける
また、以下のようなデメリットがあるので、UIの見栄えとのバランスを念頭に置いて使う必要があります。
- ソースが1ページに書かれるため、ページを分ける場合と違ってSEO効果が薄れる場合がある
- タブを移動してもページビューとしてカウントされないため、ページビューを上げたい場合に不利となる
Ajaxで待ち時間をなくして快適に
ネットワークの速度は高まってきていますが、別ページにリンクする場合、ページを切り替えるときの待ち時間が多少なりとも発生します。しかし、Ajaxのタブ型コンテンツを使えば、待ち時間をなくすことができます。ページのリロードを発生させずにフォームのpostデータを送ったり、コンテンツを切り替えるといったことが可能だからです。
タブで切り替えるUIは、単純なJavaScriptを使ってもを実現できますが、今回はフェードする動きを加えて気持ちよさを出したいため、jQueryを使ったサンプルをご紹介します。
切り替えるコンテンツを指定するには
まずは基本となる部分から見ていきましょう。
最初にgoogleapiのjQueryライブラリと、jquery.tools.min.jsを読み込みます。
切り替わるコンテンツ部分は、下から4行目の「function」で指定しています。
効果を指定するのは下から3行目の「effect」のところ。今回は「fade」を指定しています。
一見難しいのが以下の部分です。
これは、以下に掲載したXHTMLソース内の「id=tabs」の中の「id="tabPanes"」の中に書かれている3つの「div」の内容を切り替えられるようにしています。切り替えのコントロールはul、liのリストタグで記述します。
CSSでタブの詳細を指定する
CSSを切ると以下のようになります。
今回は3つのタブを用意していますが、CSSで3つともに同じwidthを指定します。
ブロックレベル要素にしてfloat:left;を指定します。
以下の2行は、IE6、7への対策のためです。
hoverとcurrent時の背景画像は、「bg_tab.png」と指定しています。
より多彩で自然な動きを
タブ切り替えで参考になる一例が、vectorデータを数多く配信している「Vectortuts+」です。
- Vectortuts+
- http://vector.tutsplus.com/
ここではサイドバーのコンテンツを切り替えるUIとして、タブが効果的に使われています。
また、かっこいいインターフェースの例としてよく引き合いに出されるのがCodaです。
- パニック・ジャパン - Coda
- http://www.panic.com/jp/coda/
左右に動くタブ型コンテンツは、クールで動きの気持ちいいUIとなっています。
iPadの登場でインターフェースのあり方も広がりを見せていますが、常に気持ちよくて新しい動きを見たり触ったりすることで、追求していきたいですね。
今回解説したサンプルファイルがダウンロードできます。