hoverとfilter:brightnessで明るさ調節!CSS画像エフェクト3選

今回は画像をhover(マウスオーバー)すると画像の明るさが切り替わるエフェクトをfilter:brightnessで作ってみました
htmlとcssだけしか使っていません。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。

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

 

1. hoverすると夜明けのように画像が変化するfilterエフェクト

動きは下の画像のような感じになります

コードを見る
<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>
/* hover前のスタイル */
img {
  margin: 0 auto;
  width: 350px;
  height: 220px;
  cursor: pointer;
  transition: 500ms ease-in;
  /* エフェクトの速度調整 */
  filter: brightness(30%);
  /* brightnessで明るさの度合いの指定 */
}
/* hover後のスタイル */
img:hover {
  filter: brightness(120%);
  /* hover後の明るさの指定 */
}
ここがポイント!
  1. hover前・hover後のimgスタイルを用意
  2. hover前のimgにtransitionでエフェクトの速度調整・filter: brightness()で明るさの指定
  3. hover後のimgにも同じくfilter: brightness()で明るさの指定
  4. 今回はbrightnessをhover前は30%、hover後は120%と指定することで夜明けに太陽が差し込むようなエフェクトを実現

 

2. hoverすると夕暮れのように画像が変化するfilterエフェクト

動きは下の画像のような感じになります

コードを見る
<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>
/* hover前のスタイル */
img {
  margin: 0 auto;
  width: 350px;
  height: 220px;
  cursor: pointer;
  transition: 500ms ease-in;
  /* エフェクトの速度調整 */
  filter: brightness(120%);
  /* brightnessで明るさの度合いの指定 */
}
/* hover後のスタイル */
img:hover {
  filter: brightness(30%);
  /* hover後の明るさの指定 */
}
ここがポイント!
  1. hover前・hover後のimgスタイルを用意
  2. hover前のimgにtransitionでエフェクトの速度調整・filter: brightness()で明るさの指定
  3. hover後のimgにも同じくfilter: brightness()で明るさの指定
  4. 今回はbrightnessをhover前は120%、hover後は30%と指定することで徐々に光が薄くなり夕暮れのようなエフェクトを実現

 

3. hoverすると色のない世界が色鮮やかな世界に切り替わるfilterエフェクト

動きは下の画像のような感じになります

コードを見る
<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>
/* hover前のスタイル */
img {
  margin: 0 auto;
  width: 350px;
  height: 220px;
  cursor: pointer;
  transition: 800ms ease-in;
  /* エフェクトの速度調整 */
  filter: brightness(100%) grayscale(1) opacity(.9);
  /* brightnessで明るさ・grayscaleで白黒の度合い・opacityで不透明度の指定 */
}
/* hover後のスタイル */
img:hover {
  filter: brightness(150%) grayscale(0) opacity(1);
  /* hover後の明るさの指定 */
}
ここがポイント!
  1. hover前・hover後のimgスタイルを用意
  2. hover前のimgにtransitionでエフェクトの速度調整・filter: brightness() grayscale() opacity()で明るさ・色・不透明度の指定
  3. hover後のimgにも同じくfilter: brightness() grayscale() opacity()で明るさ・色・不透明度の指定
  4. 今回はbrightnessをhover前は100%、hover後は150%、grayscaleをhover前は1、hover後は0と指定することで色のない世界がhoverすると色鮮やかに切り替わるエフェクトを実現

参考

そもそもWebデザインの基礎がわからない。。
そんなあなたにはこれ!

ふたご


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

ふたご

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

 

   話だけ聞いてみる