今回は【CSSアニメーション】hoverするとfilter+scaleで画像が100倍強調されるをご紹介。エフェクトがついてます。簡単です。動きます。オシャレな画像一覧を作れます。レスポンシブ対応。
htmlとcssだけしか使っていません。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。
こちらのアニメーション/エフェクトのコードはすべて完全オリジナルなのでコピペ大歓迎です。
この記事の目次
【CSSアニメーション】hoverするとfilter+scaleで画像が100倍強調される
目次
【CSSアニメーション】hoverするとfilter+scaleで画像が100倍強調される
アニメーション動作の確認
動きは下の画像のような感じになります
実際の動きはこちら
コードの確認
<div class="do-animation pic-background">
<!-- 画像を複数用意 -->
<div class="pic">
<img src="https://source.unsplash.com/1000x800" >
</div>
<div class="pic">
<img src="https://source.unsplash.com/1000x801" >
</div>
<div class="pic">
<img src="https://source.unsplash.com/1000x802" >
</div>
<div class="pic">
<img src="https://source.unsplash.com/1000x803" >
</div>
<div class="pic">
<img src="https://source.unsplash.com/1000x804" >
</div>
<div class="pic">
<img src="https://source.unsplash.com/1000x805" >
</div>
</div>
/* hover後の画像一覧のアニメーション指定 */
.do-animation:hover > * {
/* 不透明度の調整 */
opacity: 0.4;
/* 画像の拡大調整 */
transform: scale(0.9);
/* フィルタープロパティで明るさ・彩度の調整 */
filter: brightness(90%) saturate(100%);
}
/* hoverされた画像のアニメーション指定 */
.do-animation > *:hover {
/* 画像の拡大調整 */
opacity: 1;
/* 画像の拡大調整 */
transform: scale(1);
/* フィルタープロパティで明るさ・彩度の調整 */
filter: brightness(120%) saturate(120%);
}
/* 画像一覧を中央に配置 */
.pic-background {
/* 要素を横並びに配置 */
display: flex;
/* 要素を複数行に折り返して配置 */
flex-wrap:wrap;
/* 要素を中央に配置 */
justify-content:center;
margin-top: 10px;
width:100%;
}
.pic img {
width:100%;
height: 100%;
}
/* 各画像のサイズ・配置・アニメーション速度を指定 */
.pic{
margin:0%;
background:white;
width:29%;
height:30%;
/* hover後のアニメーション速度 */
transition:.2s all;
}
ここがポイント!
- 画像を複数用意しflexboxで中央に配置する(flex-wrap, justify-content)
- 各々のwidth, heightを%表記としレスポンシブ対応
- hover前後のtransform: scaleを調整することで画像が拡大
- hover前後のopacityとfilter: brightness(明るさ) saturate(彩度)を調整しhoverされた画像のみを強調
- transitionで滑らかなアニメーションを実現
参考
そもそもWebデザインの基礎がわからない。。
そんなあなたにはこれ!
未経験からWeb制作で月50万稼げるようになったUdemy教材3選
でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
そんなあなたにはこれ!
完全無料で一人前のエンジニアになれるプログラミングスクールあります