HTML,CSSだけで作れる画像アニメーションないかな?という方向けに完全オリジナルの画像アニメーションを作ってみました
ふたご
今回はtransform scale×rotateを使って『HTML,CSSだけでここまで作れる』CSS画像回転アニメーションをご紹介。transformプロパティ(transform:scale×rotate)で画像サイズが拡大+回転します。HTML, CSSだけ。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。
こちらのデザイン・コードはすべて完全オリジナルなのでコピペ大歓迎です。
まずは動きを確認してみてください(これがコピペOKなのかと驚くはず)
※突然ですが超オトクな『無料プレゼント』のお知らせです・・
今から3日以内に『転職実績No. 1のプログラミングスクール DMM WEBCAMP』へ無料カウンセリング申込&参加された方のみ限定でもれなく【Amazonギフト券1,000円分】をGETできるキャンペーン
完全オンラインレッスンで個別メンター付き。1月中なら期間限定で5万円のキャッシュバックも
無料カウンセリング ▶︎
1. 【X軸で動く】transform:scaleX×rotateXで画像アニメーション
動きは下の画像のような感じになります
コードを見る
<div class="images">
<div class="image">
<img src="https://images.unsplash.com/photo-1532699123275-37b5a57561cf?ixlib=rb-1.2.1&auto=format&fit=crop&w=1650&q=80">
</div>
</div>
.images {
width: 40%;
margin: auto;
}
.image {
/* はみ出す箇所を隠す */
overflow: hidden;
/* アニメーション速度を指定 */
transition: .8s;
/* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、色) */
box-shadow: 0 20px 30px rgba(0,0,0,.1);
}
.image > img {
/* デフォルトでの画像のズーム率を指定 */
width: 100%;
/* アニメーション速度を指定 */
transition: .8s;
filter: saturate(100%) brightness(100%) contrast(100%);
/* transformプロパティで画像のサイズを拡大・縮小・回転角度を調整 */
transform: scaleX(0) rotateX(180deg);
}
.image:hover > img {
filter: saturate(240%) brightness(110%) contrast(110%);
/* transformプロパティで画像のサイズを拡大・縮小・回転角度を調整 */
transform: scaleX(1) rotateX(360deg);
}
POINT
- overflow: hiddenで枠に収まらないサイズの要素は隠す
- box-shadowで奥行きをつけて立体感を演出
- object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
- transform:scale × rotateでhoverした画像サイズを拡大・回転
- filter:saturate(彩度) brightness(明るさ) contrast(コントラスト)を指定
- transitionで開始から終了までの十分な時間を設定し滑らかなアニメーションを実現
2. 【Y軸で動く】transform:scaleY×rotateYで画像アニメーション
動きは下の画像のような感じになります
コードを見る
<div class="images">
<div class="image">
<img src="https://images.unsplash.com/photo-1532699123275-37b5a57561cf?ixlib=rb-1.2.1&auto=format&fit=crop&w=1650&q=80">
</div>
</div>
.images {
width: 40%;
margin: auto;
}
.image {
/* はみ出す箇所を隠す */
overflow: hidden;
/* アニメーション速度を指定 */
transition: .8s;
/* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、色) */
box-shadow: 0 20px 30px rgba(0,0,0,.1);
}
.image > img {
/* デフォルトでの画像のズーム率を指定 */
width: 100%;
/* アニメーション速度を指定 */
transition: .8s;
filter: saturate(100%) brightness(100%) contrast(100%);
/* transformプロパティで画像のサイズを拡大・縮小・回転角度を調整 */
transform: scaleY(0) rotateY(180deg);
}
.image:hover > img {
filter: saturate(240%) brightness(110%) contrast(110%);
/* transformプロパティで画像のサイズを拡大・縮小・回転角度を調整 */
transform: scaleY(1) rotateY(360deg);
}
POINT
- overflow: hiddenで枠に収まらないサイズの要素は隠す
- box-shadowで奥行きをつけて立体感を演出
- object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
- transform:scale × rotateでhoverした画像サイズを拡大・回転
- filter:saturate(彩度) brightness(明るさ) contrast(コントラスト)を指定
- transitionで開始から終了までの十分な時間を設定し滑らかなアニメーションを実現
3. 【Z軸で動く】transform:scale×rotateZで画像アニメーション
動きは下の画像のような感じになります
コードを見る
<div class="images">
<div class="image">
<img src="https://images.unsplash.com/photo-1532699123275-37b5a57561cf?ixlib=rb-1.2.1&auto=format&fit=crop&w=1650&q=80">
</div>
</div>
.images {
width: 40%;
margin: auto;
}
.image {
/* はみ出す箇所を隠す */
overflow: hidden;
/* アニメーション速度を指定 */
transition: .8s;
/* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、色) */
box-shadow: 0 20px 30px rgba(0,0,0,.1);
}
.image > img {
/* デフォルトでの画像のズーム率を指定 */
width: 100%;
/* アニメーション速度を指定 */
transition: .8s;
filter: saturate(100%) brightness(100%) contrast(100%);
/* transformプロパティで画像のサイズを拡大・縮小・回転角度を調整 */
transform: scale(0) rotateZ(0deg);
}
.image:hover > img {
filter: saturate(240%) brightness(110%) contrast(110%);
/* transformプロパティで画像のサイズを拡大・縮小・回転角度を調整 */
transform: scale(1) rotateZ(720deg);
}
POINT
- overflow: hiddenで枠に収まらないサイズの要素は隠す
- box-shadowで奥行きをつけて立体感を演出
- object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
- transform:scale × rotateでhoverした画像サイズを拡大・回転
- filter:saturate(彩度) brightness(明るさ) contrast(コントラスト)を指定
- transitionで開始から終了までの十分な時間を設定し滑らかなアニメーションを実現
【初心者向け】失敗しないプログラミングTIPS
そもそもWebデザインの基礎がわからない。。
ふたご
未経験からWeb制作で月50万稼げるようになったUdemy教材3選
でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
ふたご
完全無料で一人前のエンジニアになれるプログラミングスクール【ProEngineer】
- プログラミング学習&サポートが無料!
- 誰もが知っている超優良企業への就職サポート付き!
- 学習言語:Java、PHP、HTML、CSSなど
話だけ聞いてみる