ホームページ >ウェブフロントエンド >CSSチュートリアル >マウスオーバーで色を変更する CSS を使用してグレースケール画像を作成するにはどうすればよいですか?

マウスオーバーで色を変更する CSS を使用してグレースケール画像を作成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 02:35:021050ブラウズ

How can I create a grayscale image with CSS that re-colors on mouse-over?

CSS で画像のグレースケールを実現し、マウスオーバーで色を変更します

CSS で画像のグレースケールを実現し、マウスで色を変更できます-いくつかの方法を使用します。概要は次のとおりです:

純粋な CSS (単色の画像を使用)

CSS フィルターを使用して画像をグレースケールに変換し、マウスオーバー時の効果を削除します:

<code class="css">img.grayscale {
  filter: grayscale(100%);
}

img.grayscale:hover {
  filter: none;
}</code>

CSS と JavaScript の組み合わせ

グレースケール画像とカラー画像を作成し、マウスイン イベントとマウスアウト イベントで表示/非表示を切り替えます:

<code class="css">img.grayscale {
  opacity: 1;
}

img.colored {
  opacity: 0;
}</code>
<code class="js">document.querySelector('img').addEventListener('mouseover', () => {
  document.querySelector('img.colored').style.opacity = 1;
  document.querySelector('img.grayscale').style.opacity = 0;
});

document.querySelector('img').addEventListener('mouseout', () => {
  document.querySelector('img.colored').style.opacity = 0;
  document.querySelector('img.grayscale').style.opacity = 1;
});</code>

SVG フィルターの使用 (IE10 のみ)

フィルター付きのインライン SVG を利用して彩度効果を適用し、マウスオーバーで変更します:

<code class="html"><svg>
  <defs>
    <filter id="grayscale">
      <feColorMatrix type="saturate" values="0" />
    </filter>
  </defs>
  <image filter="url(#grayscale)" ... />
</svg></code>

Saturate の値を調整することで、グレースケールのレベルを制御できます。この方法は IE10 以降でサポートされています。

以上がマウスオーバーで色を変更する CSS を使用してグレースケール画像を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。