CSS javascript(jquery)

超簡単!【CSS3】ロールオーバー効果

投稿日:2015年1月5日 更新日:

今回はCSS3でロールオーバー効果をかける方法をご紹介します。

共通HTML、CSS

HTML

<div class=”demo” id=”demo01″>
<img src=”” alt=”demo” width=”240″ height=”160″ />
<div class=”lo”>
</div>
</div>

CSS赤字が今回追記した箇所になります。

.demo{
width:240px;
height:160px;
position:relative;
}
.demo .lo{
width:240px;
background:rgba(255,255,255,0.5);
position:absolute;
transition: all 0.2s ease;
}

解説

transition: all 0.2s ease;
これが新しいCSS3で新しく追加されたプロパティで時間による変化を指定することができます。(hoverで指定したプロパティの値に変化します。)
transition-property(変化させるプロパティを指定)
transition-duration(変化させる時間を指定)
transition-timing-function(変化のタイミング、割合を指定(ease、linear、ease-in、ease-out、ease-in-out、3次ベジェ曲線cubic-bezier(数値, 数値, 数値, 数値)などがあります。))
transition-delay(変化が始まるまでの時間を指定)
これらをまとめて今回はtransition: all 0.2s ease;としました。
全てのプロパティを変化0.2秒かけてease(開始と完了を滑らかにする)ように変化せるよう指定しました。

下から上に

demo

CSS赤字が今回追記した箇所になります。打ち消し線は今回なくした箇所になります。

.demo#demo01 .lo{
bottom:0;
height:0;
display:none;
}
.demo#demo01:hover .lo{
height:160px;
}

解説

jqueryの時にはbottom:0;とslideToggleで下から出てくるように見せていました。
jqueryではheight:160px;display:none;としていましたが、元を0px、hoverfで160pxとし、下から出てくる動きを表現しました。

中央から上下に

demo

CSS赤字が今回追記した箇所になります。

.demo#demo02 .lo{
top:80px;
height:0;
}
.demo#demo02:hover .lo{
top:0;
height:160px;
}

解説

topを80px→0px
heightを0px→160px
2つの値を変化させることで、中央から上下に広がるように見えます。

中央から上下左右に

demo

CSS赤字が今回追記した箇所になります。

.demo#demo03 .lo{
top:80px;
left:120px;
width:0;
height:0;
}
.demo#demo03:hover .lo{
top:0;
left:0;
width:240px;
height:160px;
}

解説

topを80px→0px
heightを0px→160px
leftを120px→0px
widthを0px→160px
4つの値を変化させることで、中央から上下左右に広がるように見えます。

まとめ

jqueryのanimateで指定していた内容をスタイルシートのhover記述し、時間などを”transition”で指定してあげることで、cssでも簡単にjqueryと同じような効果が再現可能です。
jqueryに慣れている方はcss3でも同じ感覚で再現でき、とても簡単です。逆にjqueryは苦手という方でも、まずは馴染みのあるcssでの記述に慣れたら、jqueryも苦手意識なく、とりかかれるのではないでしょうか?
また、css3ではXYZ軸それぞれ回転が可能であったりと、一見万能なjqueryでも表現が難しいことが表現可能だったりします。jquery、cssにこだわらずにどちらも使えるようなれば、どんなサイト制作も怖くありません。
今回のデモでcssを操作することで、色々な見せ方ができるということが分かったかと思います。デザイナー、コーダーの方はもちろん、ディレクター、WEB制作担当者の方もちょっとした知識を持っておくと、様々なアイディアが浮かんでくるのではないでしょうか。

-CSS, javascript(jquery)

関連記事

面白い動きや便利な機能をJSで実装! その3:一目で印象に残るアニメーション背景を作成!

面白い動きや便利な機能をJSで実装! その3:一目で印象に残るアニメーション背景を作成!

web制作をされている方ならば、サイトを訪れてくれた人を少しでも長く引き留めたいと思われると思います。 一体どうやって見てくれる人の興味をひけるのか。色々な方法がありますが、その一つとして面白い動きを …

手軽に雰囲気を変える!無料英字webフォントのまとめ -個性的編-

手軽に雰囲気を変える!無料英字webフォントのまとめ -個性的編-

webフォントは日本のホームページには今一歩馴染みが無いかもしれませんが これから先、SEOを視野に入れたものはほぼテキストで作成することが望まれます。 今回はその第一弾として「個性的な英字フォント( …

【2014年のWEBデザイン!】流行するカラー&廃りそうなスタイル

【2014年のWEBデザイン!】流行するカラー&廃りそうなスタイル

2013年も気が付けば残り1週間。早いものですね~(しみじみ) WEBの業界は流行り廃りが激しいもので、 デザインに限って見ても、この1年間でもさまざまな動きがありましたね。 2014年、WEBデザイ …

知ってそうで知らないCSS3の便利な使い方【その1:構造疑似クラス編】

知ってそうで知らないCSS3の便利な使い方【その1:構造疑似クラス編】

CSS3のセレクタは幾つもありますよね。 今回はその中の構造疑似クラスで、私がよく使う便利な構造疑似クラスをご紹介します。 目次1 E:first-child2 E:first-of-type2.1 …

【jQuery】 超簡単!アコーディオンメニュー ②

【jQuery】 超簡単!アコーディオンメニュー ②

html5の新属性、独自データ属性”data-〇〇”を使ってみましょう!! 目次1 デモ1.1 アコーディオンタイトル1.2 アコーディオンタイトル1.3 アコーディオンタイトル2 HTML3 CSS …