今回はbox-shadowとhoverで3D画像に動きをつけて100倍リアルなCSS画像アニメーションをご紹介。回転します。超動きます。
htmlとcssだけしか使っていません。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。
こちらのアニメーション/エフェクトのコードはすべて完全オリジナルなのでコピペ大歓迎です。
この記事の目次
3D画像が回転するhoverアニメーション
目次
1. 3D画像が2D画像に変化するシンプルなhoverアニメーション
まずはアニメーションの動作から確認していきましょう
アニメーション動作の確認
動きは下の画像のような感じになります
実際の動きはこちら
コードの確認
コードはこちら
<div class="container">
<div class="image">
<img src="https://images.unsplash.com/photo-1551607117-21fa129a211d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1720&q=80" style="background-size:cover;" class="img" alt="">
</div>
</div>
* {
padding: 0;
margin: 0;
}
.container {
width: 100%;
min-height: 100vh;
}
.image {
perspective: 3000px;
/* 3D変形の奥行きの指定 */
width: 70%;
position: absolute;
transform: translate(18%, 25%);
/* 画像の位置調整 */
transform-style: preserve-3d;
/* 要素の3D指定 */
}
.image img {
transform: rotateX(50deg) rotateZ(-30deg) translate3d(-120px, -80px, 30px);
/* 画像の角度調整 */
box-shadow: -30px 30px 15px 5px rgba(0,0,0,0.4);
transition: all 1.0s;
/* 動きの速度調整 */
transform-style: preserve-3d;
width: 70%;
/* 画像の大きさ調整 */
}
.image:hover img {
transform: rotateX(0deg) rotateZ(0deg) translate3d(-120px, 0px, 0px);
/* hover後の画像の角度調整 */
box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.0);
/* hover後の影の打ち消し */
}
ここがポイント!
- transfromプロパティとbox-shadowを使って画像を3Dに変形
- hover時にそれらを打ち消すことで2D画像に変化
- transitionプロパティを指定することで滑らかなアニメーションを実現
参考
そもそもWebデザインの基礎がわからない。。
そんなあなたにはこれ!
未経験からWeb制作で月50万稼げるようになったUdemy教材3選
でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
そんなあなたにはこれ!
完全無料で一人前のエンジニアになれるプログラミングスクールあります