[CSS]画像のキャプションをいい感じのアニメーションで表示するシンプルなホバーエフェクト
Post on:2015年6月10日
sponsorsr
シンプルな実装で、画像のキャプションを美しいグラデーションのパネルにアニメーションで表示するシンプルなホバーエフェクトを紹介します。

実装してみた
実装は非常に簡単で、カスタマイズも簡単です。
パネルのカラーをピンクに変えて、実装してみました。
イラストは、以前紹介した「Girls Design Materials」です。
実装
Step 1: HTML
画像とキャプション(見出しとテキスト)をセットに、a要素で括り、全体をdiv要素で内包します。
<div class="tiles"> <a href="#" class="tile"><img src="image.jpg"/><div class="details"><span class="title">見出し</span><span class="info">テキスト</span></div></a> <a href="#" class="tile"><img src="image.jpg"/><div class="details"><span class="title">見出し</span><span class="info">テキスト</span></div></a> <a href="#" class="tile"><img src="image.jpg"/><div class="details"><span class="title">見出し</span><span class="info">テキスト</span></div></a> <a href="#" class="tile"><img src="image.jpg"/><div class="details"><span class="title">見出し</span><span class="info">テキスト</span></div></a> </div>
Step 2: CSS
ホバー時のパネルのカラーは、「.tiles .tile:before」の「background」を変更します。
.tiles .tile {
display: inline-block;
margin: 10px;
text-align: left;
opacity: .99;
overflow: hidden;
position: relative;
border-radius: 3px;
box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.05);
}
.tiles .tile:before {
content: '';
background: -webkit-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.7) 100%);
background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%);
width: 100%;
height: 50%;
opacity: 0;
position: absolute;
top: 100%;
left: 0;
z-index: 2;
-webkit-transition-property: top, opacity;
transition-property: top, opacity;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
}
.tiles .tile img {
display: block;
max-width: 100%;
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
}
.tiles .tile .details {
font-size: 16px;
padding: 20px;
color: #fff;
position: absolute;
bottom: 0;
left: 0;
z-index: 3;
}
.tiles .tile .details span {
display: block;
opacity: 0;
position: relative;
top: 100px;
-webkit-transition-property: top, opacity;
transition-property: top, opacity;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
-webkit-transition-delay: 0s;
transition-delay: 0s;
}
.tiles .tile .details .title {
line-height: 1;
font-weight: 600;
font-size: 18px;
}
.tiles .tile .details .info {
line-height: 1.2;
margin-top: 5px;
font-size: 12px;
}
.tiles .tile:hover:before,
.tiles .tile:hover span {
opacity: 1;
}
.tiles .tile:hover:before {
top: 50%;
}
.tiles .tile:hover span {
top: 0;
}
.tiles .tile:hover .title {
-webkit-transition-delay: 0.15s;
transition-delay: 0.15s;
}
.tiles .tile:hover .info {
-webkit-transition-delay: 0.25s;
transition-delay: 0.25s;
}
下記のデモページでは、コードを編集していろいろ試すこともできます。

sponsors











