transform scale×rotateでCSS画像回転アニメーション3選【HTML,CSSだけでここまで作れる】

HTML,CSSだけで作れる画像アニメーションないかな?という方向けに完全オリジナルの画像アニメーションを作ってみました

ふたご

今回はtransform scale×rotateを使って『HTML,CSSだけでここまで作れる』CSS画像回転アニメーションをご紹介。transformプロパティ(transform:scale×rotate)で画像サイズが拡大+回転します。HTML, CSSだけ。

コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。

こちらのデザイン・コードはすべて完全オリジナルなのでコピペ大歓迎です。

まずは動きを確認してみてください(これがコピペOKなのかと驚くはず)

 

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
  1. overflow: hiddenで枠に収まらないサイズの要素は隠す
  2. box-shadowで奥行きをつけて立体感を演出
  3. object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
  4. transform:scale × rotateでhoverした画像サイズを拡大・回転
  5. filter:saturate(彩度) brightness(明るさ) contrast(コントラスト)を指定
  6. 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
  1. overflow: hiddenで枠に収まらないサイズの要素は隠す
  2. box-shadowで奥行きをつけて立体感を演出
  3. object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
  4. transform:scale × rotateでhoverした画像サイズを拡大・回転
  5. filter:saturate(彩度) brightness(明るさ) contrast(コントラスト)を指定
  6. 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
  1. overflow: hiddenで枠に収まらないサイズの要素は隠す
  2. box-shadowで奥行きをつけて立体感を演出
  3. object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
  4. transform:scale × rotateでhoverした画像サイズを拡大・回転
  5. filter:saturate(彩度) brightness(明るさ) contrast(コントラスト)を指定
  6. transitionで開始から終了までの十分な時間を設定し滑らかなアニメーションを実現

【初心者向け】失敗しないプログラミングTIPS

そもそもWebデザインの基礎がわからない。。
そんなあなたには『Udemy』

ふたご


でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
そんなあなたにはProEngineer

ふたご

完全無料で一人前のエンジニアになれるプログラミングスクール【ProEngineer】
  1. プログラミング学習&サポートが無料!
  2. 誰もが知っている超優良企業への就職サポート付き!
  3. 学習言語:Java、PHP、HTML、CSSなど

 

   話だけ聞いてみる