CSSだけでhoverでキャプションがスライドして入ってくるアニメーションを作る方法

PR

CSS3のtransitionでhoverした時にアニメーションを設定して、画像等にマウスが乗った時にキャプションをスライド&フェードで表示するテクニック

このようなアニメーションになります

CSSだけでhoverでキャプションがスライドして入ってくるアニメーションの例

実際にDEMOで確認したもらったほうがより分かりやすいと思います

DEMO 表示

 

CSSだけでキャプションをスライドインで作る方法

原理はpositionで位置をずらして、hoverされたときに画像に覆いかぶさる様にしています
その動作をtransitionを使ってアニメーションにするというものです

HTMLコード

<div class="ho">
    <a href="">
        <img src="aaa.jpg" alt="" width="300" height="300">
        <span class="demo1"><h1>創造Webの元の記事に戻る</h1></span>
    </a>
</div>

HTMLはかなりシンプルです

 

CSSコード(必要最低限の部分だけ取り出しています)

.ho {
    position: relative;
}

img {
    width: 300px;
    height: 300px;
}

span {
    display: block;
    position: absolute;
    width:300px;
    height:300px;
    line-height: 300px;
    top:0;
    left:0;
    background: rgba(0,0,0,0.5);
    -webkit-transition: all 0.4s;
    -moz-transition: all 0.4s;
    -ms-transition: all 0.4s;
    -o-transition: all 0.4s;
    transition: all 0.4s;
    opacity: 0;
}

.demo1 {
    top:50px;
}

a:hover span {
    display: block;
    top:0;
    left:0;
    opacity: 1;
}

a {
    display: block;
}

spanをimgと同じ大きさにして、positionをつかってimgと少しずれた位置にします
今回は左上を起点にtopとleftを使いましたがrightでもbottomでも好きな箇所を起点に出来ます

そしてhoverされるとtopを0、leftを0にすることでimgの真上に来るようになっています

またopacityで初期の透明度を最大にして見えなくします
hoverがあったときに透明度を1にして無効にします

あとはそれぞれの動作をアニメーション化するためにspanにtransitionを付けます
これで、positionの変動と透明度の変動がアニメーションで表示されるよう雄になりました

 

これだと、opacityで見えなくしているだけの部分にhoverしたときも動作しますので
.hoにoverflow:hiddenをつけると、そういうことはなくなりますが、アニメーションの見え方も変わります

PR

COMMENT

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー