ホバーアニメボタン
css3のみでボタンをマウスホバーした時のアニメ演出
サンプル1
背景色変化
hoverで背景色・文字色変更。1:transition、2:animation
背景画像移動
hoverで背景画像のbackground-positionを移動。文字色も変化。1:画像を下から上、2:画像を上から下
背景画像移動(普通の画像背景)
hoverで背景画像のbackground-positionを移動。文字色も変化。1:画像を下から上、2:画像を上から下
サンプル2
ボーダーアニメ
border上をbefore,afterの四角がアニメ
ボーダーアニメ2
border上をbefore,afterの四角がアニメ
ボーダーアニメ3
透明before,afterの拡大アニメでボーダーが伸びる演出
サンプル3
ボーダーアニメ4
before,afterの四角がボーダー上を移動
ボーダーアニメ5
四角がボーダー上を塗りながら移動。
ボーダーアニメ6
左:伸び縮みしながらボーダー上を移動
サンプル4
transformアニメ1
ボタンが振動。左:左右。右:上下。(translateで移動)
transformアニメ2
ボタンが振動。左:斜め(translateで移動)。右:傾斜変形。
transformアニメ3
ボタンが傾く。
サンプル5
transformアニメ4
before面を回転表示
transformアニメ5
before面やafter面を回転表示。縦メニューサンプル4-1、4-2の逆回転
半透明の面でシャッター演出
半透明の面を上に表示。左:beforeが左から伸びる。右:beforeが上から25px、afterが下から25px。
サンプル6
反転文字、文言追加
左:反転文字。右:before、afterで文言表示。
shadowでシャッター
左:閉じる。右:開く。
shadowでストライプ演出
左:横から縦。右:縦から横。
ホバーアニメボタンについての考察
昔は画像メニューやバナーなどをマウスホバーした時に別の画像に差し替える時はjavasctipで演出したりしてましたが、
CSSだけで画像差し換え演出もできるようになったので、わざわざjavascript(やjQueryプラグイン)をそれだけのために使うのは、
技術やアイデアを持っている制作者からは、どう思われてしまうのだろう、
などと思ったりする今日この頃です。
(どこかの誰かを dis っているわけではありません、個人的感想です)
このページの例は、div1個 + css (transition or animation) + :before , :after でいろいろ作ってみたサンプルとなっています。
div・spanタグをたくさん使って作れば、いろいろ簡単に作れますが、基本テーマとしてdiv1個で作るようにしています。
例えば、ボーダーアニメやシャッターのような演出をしたいだけのために、spanをたくさん使ったり、jQueryプラグインを使うのは本末転倒ではないかと思ったので、
実験しながら作ってみた、というのが最初の動機となっています。
サンプル2やサンプル3のボーダーアニメは、FF,GC,Oでは想定通りの動作をしてますが、IE10の場合のみ、ウインドウサイズが小さい時に(横940以下)、ボーダーの位置がずれる場合がありました。(原森サイトの場合、ウインドウサイズにより、大きなレイアウト用の親divのサイズを変更しているからなのか、要素配置の計算時にIEと他のブラウザでは計算誤差があり、配置がずれるため?かもしれません)
※上記は2014年頃のネタです。どんどんブラウザがアップデートしていますので、詳細に確認してませんが、今では多分普通に動くのではないかと思います。
というか、IE8はもう対応しなくていいはずですが、IE10対応も、もう不要なんでしょうかね?
※ 2018.05 に GCで久しぶりに確認してみたところ、ボーダーアニメ3が昔と違ってぶるぶる震えるようになっていました。
主なcssやテクニック
- :hover
- マウスホバーの擬似クラス
- transition
- 時間的変化を指定するcssプロパティ
- animation
- アニメを指定するcssプロパティ
- @keyframes
- アニメのキーフレーム指定
- transform
- 要素の変形を指定するcssプロパティ
ページトップへ