今回は【完全オリジナル】transform:scale×hover×CSS画像アニメーション3選をご紹介。シンプルかつ洗練されたデザイン。filterプロパティでエフェクト。hoverアニメーションで画像が拡大縮小する。Web制作で使える。コピペOK。HTML, CSSだけ
動きを見ていただければ使いたくなること間違いなしです!
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。
こちらのデザイン・コードはすべて完全オリジナルなのでコピペ大歓迎です。
1. transform scale×hoverで【横に拡大縮小】CSS画像アニメーション
動きは下の画像のような感じになります
コードを見る
<div class="images">
<div class="image">
<img src="https://images.unsplash.com/photo-1519221739757-4df89b4d0efe?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1650&q=80">
</div>
</div>
.images {
/* 子要素を横並びに配置する */
display: flex;
align-items: center;
margin: auto;
width: 50%;
height: 50vh;
}
.image {
/* はみ出す箇所を隠す */
overflow: hidden;
/* 画像が伸縮せずに滑らかに表示されるように指定 */
object-fit: cover;
/* 文字の高さを指定 */
line-height: 0;
}
.image > img {
/* デフォルトでの画像のズーム率を指定 */
width: 100%;
/* imgをimageの枠にトリミングしてはめ込む */
object-fit: cover;
/* アニメーション速度を指定 */
transition: .8s;
/* フィルタープロパティで白黒度合い・彩度・明るさ・コントラストを調整 */
filter: grayscale(0) saturate(250%) brightness(130%) contrast(120%);
/* 拡大・縮小度合いを調整 */
transform: scaleX(1);
}
.image:hover > img {
width: 100%;
height: 100%;
/* フィルタープロパティで白黒度合い・彩度・明るさ・コントラストを調整 */
filter: grayscale(1) saturate(100%) brightness(100%) contrast(100%);
/* 拡大・縮小度合いを調整 */
transform: scaleX(0);
/* アニメーション速度を指定 */
transition: .8s;
}
ここがポイント!
- flexboxとmargin: auto;でど真ん中に設置
- overflow: hiddenで枠に収まらないサイズの要素は隠す
- box-shadowで奥行きをつけて立体感を演出
- object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
- transform scaleで拡大縮小の調整
- transitionでhoverするとアニメーションを実現
2. transform scale×hoverで【縦に拡大縮小】CSS画像アニメーション
動きは下の画像のような感じになります
コードを見る
<div class="images">
<div class="image">
<img src="https://images.unsplash.com/photo-1519221739757-4df89b4d0efe?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1650&q=80">
</div>
</div>
.images {
/* 子要素を横並びに配置する */
display: flex;
align-items: center;
margin: auto;
width: 50%;
height: 50vh;
}
.image {
/* はみ出す箇所を隠す */
overflow: hidden;
/* 画像が伸縮せずに滑らかに表示されるように指定 */
object-fit: cover;
/* 文字の高さを指定 */
line-height: 0;
}
.image > img {
/* デフォルトでの画像のズーム率を指定 */
width: 100%;
/* imgをimageの枠にトリミングしてはめ込む */
object-fit: cover;
/* アニメーション速度を指定 */
transition: .8s;
/* フィルタープロパティで白黒度合い・彩度・明るさ・コントラストを調整 */
filter: grayscale(0) saturate(250%) brightness(130%) contrast(120%);
/* 拡大・縮小度合いを調整 */
transform: scaleY(1);
}
.image:hover > img {
width: 100%;
height: 100%;
/* フィルタープロパティで白黒度合い・彩度・明るさ・コントラストを調整 */
filter: grayscale(1) saturate(100%) brightness(100%) contrast(100%);
/* 拡大・縮小度合いを調整 */
transform: scaleY(0);
/* アニメーション速度を指定 */
transition: .8s;
}
ここがポイント!
- flexboxとmargin: auto;でど真ん中に設置
- overflow: hiddenで枠に収まらないサイズの要素は隠す
- box-shadowで奥行きをつけて立体感を演出
- object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
- transform scaleで拡大縮小の調整
- transitionでhoverするとアニメーションを実現
3. transform scale×hoverで【3D拡大縮小】CSS画像アニメーション
動きは下の画像のような感じになります
コードを見る
<div class="images">
<div class="image">
<img src="https://images.unsplash.com/photo-1519221739757-4df89b4d0efe?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1650&q=80">
</div>
</div>
.images {
/* 子要素を横並びに配置する */
display: flex;
align-items: center;
margin: auto;
width: 50%;
height: 50vh;
}
.image {
/* はみ出す箇所を隠す */
overflow: hidden;
/* 画像が伸縮せずに滑らかに表示されるように指定 */
object-fit: cover;
/* 文字の高さを指定 */
line-height: 0;
}
.image > img {
/* デフォルトでの画像のズーム率を指定 */
width: 100%;
/* imgをimageの枠にトリミングしてはめ込む */
object-fit: cover;
/* アニメーション速度を指定 */
transition: .8s;
/* フィルタープロパティで白黒度合い・彩度・明るさ・コントラストを調整 */
filter: grayscale(0) saturate(250%) brightness(130%) contrast(120%);
/* 拡大・縮小度合いを調整 */
transform: scaleX(1) scaleY(1);
}
.image:hover > img {
width: 100%;
height: 100%;
/* フィルタープロパティで白黒度合い・彩度・明るさ・コントラストを調整 */
filter: grayscale(1) saturate(100%) brightness(100%) contrast(100%);
/* 拡大・縮小度合いを調整 */
transform: scaleX(0) scaleY(0);
/* アニメーション速度を指定 */
transition: .8s;
}
ここがポイント!
- flexboxとmargin: auto;でど真ん中に設置
- overflow: hiddenで枠に収まらないサイズの要素は隠す
- box-shadowで奥行きをつけて立体感を演出
- object-fit: coverで画像が伸縮せずに滑らかに表示されるように指定
- transform scaleで拡大縮小の調整
- transitionでhoverするとアニメーションを実現
【初心者向け】失敗しないプログラミングTIPS
そもそもWebデザインの基礎がわからない。。
ふたご
未経験からWeb制作で月50万稼げるようになったUdemy教材3選
でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
ふたご
完全無料で一人前のエンジニアになれるプログラミングスクール【ProEngineer】
- プログラミング学習&サポートが無料!
- 誰もが知っている超優良企業への就職サポート付き!
- 学習言語:Java、PHP、HTML、CSSなど
話だけ聞いてみる