原森情報技術研究所 WEBコンテンツ企画・制作・運営・サポート / 兵庫県 神戸市 明石市 /

横メニュー演出

css3のみの横メニューでマウスホバーした時のアニメ演出

サンプル1

ボックス影と背景色変化

背景色とbox-shadowの色変更。

ボーダー色変化

hoverで背景色とborderの色変更

li:beforeのtransform

hoverでli:beforeをtransformで回転。ulのoverflow:hiddenで印象が変わる。

サンプル2

アンダーライン

hoverでli:beforeでアンダーラインのアニメ

transformで拡大や変形

hoverでa要素がtransformで変形。上:Z軸回転と拡大。下:Y軸回転とborder-radiusが変化。

ボーダーアニメ

hoverでli:before,afterをanimation。ボーダー表示。

サンプル3

メニューの大きさ変化

liやaのheight、widthを変化させるだけのもの。

テキストスライド移動

マウスホバーでliのbeforeとaを下や横にスライド。

ボックス3D回転

上:縦メニュホバー演出・サンプル4の1つ目の逆回転。下:横回転。

サンプル4

ボックス3D回転2

上:3面回転。下:表面が回転中に後ろで何かが回る演出

transform演出

aのbeforeをscaleで縮小。下は transform-origin : left bottom

transform演出2 立体感

aのbefore after 等を縮小や移動。

横メニュー演出についての考察

横メニューは、企業サイトの場合は5個程度が並んでいたりして、文言が「会社概要」とか「サービス」とかが良く使われる文言だったりで、ページ上部にカテゴリリンクとして横に並べてあるデザインがあがってくると、web制作者のみなさんがほぼ毎回の作っているパーツだと思います。
サービス内容がたくさんある場合などは、マウスホバーでボックス表示してサブメニューを並べてみたり、 縦にサブメニューをプルダウンしたりするのが一般的かと思います。

このページはサブメニューは省略して、横メニューをマウスホバーした時のそのボタン自体のtransitionアニメ演出をいろいろ実験してみました。

十数年前のテーブルレイアウト全盛期の頃は全体のテーブルの中にメニュー用のテーブルを用意して作ってましたが、今では横メニューやタブメニューは [ ul li a ] で作るのが一般的になっていて、横に並べる方法として、liを 「float:left & clear:both」「inline-block」「position と top と left」などいろいろあったりします。

原森webでは時々でいろいろ違う方法を実験したりしてますが、このページの実験サンプルでは [ul&li(+a)]系のタグを「inline-block」で並べる形でサンプルを作ってみました。

ul・li・aタグで横メニューを作ってみると、div図形の1個のタグと b & a の3つという不自由さがないので、案外いろいろアニメ演出もしやすいかと思ったりします。

横メニュー悩みどころは、マルチデバイス対応レスポンシブサイトにした場合の処理かと思います。

案としては、 『横メニューを小さくして横に並べるデザインは変えない』 『縦メニューにする』 『アイコンメニューにする』 『スマホサイズでは色テイストだけ同じで、デザインは違うものにする』 などいろいろあるかと思います。
このページのサンプルの場合は、ブラウザのウインドウ横幅を短くすると、 メディアスクリーンで別のcssを呼び、 メニューの幅や文字サイズを小さくする、という方法で対応しています。

また、このページでは関係ないですが、 レスポンシブなサイトの横メニューにボックスやプルダウンのサブメニューがある場合はどうするのか?
というのが頭を悩ませてくれるポイントかと思います。

『プルダウンのサブメニューがあるので [縦メニュー] にできないので [横メニュー] のままで文字を短くする』
いやいや、『 [横メニュー+プルダウン] は、[縦メニュー+アコーディオン] 一択 』などといろいろ考えるかもしれません。

例えば、「一択ではない」ことを原森的に考えてみたアイデアをこのサイトで販促アピール的に使っているものとして、
[CSS研究カテゴリ] のページで、[横メニュー+プルダウン] を [縦メニュー+プルダウン] にしています。

そのページの横メニューのホバー演出は、メニュー文言が3D回転する演出効果(このページのサンプル4の1つ目)とサブメニュがプルダウン表示するものとなっています。
通常は横メニューからのプルダウンになり、ウインドウサイズが小さくなった場合には縦メニューからのプルダウンに変化するようにメディアスクリーンで別cssを呼ぶ形で設定したりしています。

3D回転などは IEが「transform-style:preserve-3d」にちゃんと対応してくれればもっといろいろできるのに……などと思ったりする今日この頃です。

主なcssやテクニック

:hover
マウスホバーの擬似クラス
transition
時間的変化を指定するcssプロパティ
animation
アニメを指定するcssプロパティ
@keyframes
アニメのキーフレーム指定
transform
要素の変形を指定するcssプロパティ

ページトップへ

top > css3実験 > 
横メニュー演出

Transition ソース作成ツール ver1.0
Animation ソース作成ツール ver1.0
keyframes ソース作成ツール ver2.0
Transform ソース作成ツール ver1.0
ベンダープレフィックスを付加する ソース作成ツール ver1.0
進数変換ツール ver1.0
positionソース作成支援ツール ver1.0
liタグを自動付加するソース作成支援ツール ver1.0
checkbox radio ソース作成支援ツール ver1.0
連番ソース作成支援ツール ver1.0
10進←→16進カラー変換ツール ver1.0
セーフカラーマップ ver1.0
黄金/白銀比率計算ツール ver1.0

サブメニューがスライドする効果実験 / メニューは最初すべて非表示実験
記事や本文の指定id付き p or span 等で挟んだ時にアニメ効果js実験
SVGで立体表現実験
拡大画像を表示する(lightbox風)効果実験

フォーム入力用の演出
パララックス効果実験
ページめくり効果実験(複数ページ版 / ie10対応)
記事が上から降りてくる効果実験
記事ボックスが回転する効果実験

divが自動で回転アニメ 四角形
divが自動で正面向き回転アニメ
divがホバー方向別に異なるtransform
ボタンマウスオーバー方向で異なる入力インターフェイス実験

div図形
メニューいろいろ実験1/縦メニュ(サブなし)
メニューいろいろ実験2/横メニュー
選択表示 div box
cssだけでフキダシツールチップ表示
css3でアニメーション部品
css3でdivbox装飾
css3 + html5 でキャプション表示
css3でlist装飾
css3でホバーアニメボタン
css3で文字装飾
css3でflash代替キャッチアニメ

カテゴリMENU
お問い合せ