ホームページ >ウェブフロントエンド >CSSチュートリアル >CSS を使用してマウスオーバーで色が変わるグレースケール画像を作成する方法

CSS を使用してマウスオーバーで色が変わるグレースケール画像を作成する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 08:43:301027ブラウズ

How to Create a Grayscale Image That Re-Colors on Mouseover Using CSS?

マウスオーバーによる色変更による CSS グレースケール

クエリ:

最初はグレースケールですが、グレースケールに切り替わる画像を作成します。マウスを上に置くと色が変わります。 IE および Firefox と互換性のある CSS 技術を使用してこれを実装します。

解決策:

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

この方法では CSS フィルターを利用します。グレースケール効果を実現し、ホバー時にフィルターを削除して元の色を表示します:

<code class="css">img.grayscale {
  filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/></filter></svg>#grayscale"); /* Firefox 3.5+ */
  filter: gray; /* IE6-9 */
  -webkit-filter: grayscale(100%); /* Chrome 19+ &amp; Safari 6+ */
}

img.grayscale:hover {
  filter: none;
  -webkit-filter: grayscale(0%);
}</code>

CSS トランジションを備えたインライン SVG:

このアプローチでは、SVG 要素を画像に埋め込み、CSS を適用しますホバー時にグレースケールとカラーの間でフェードするトランジション:

<code class="css">img.grayscale {
  filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/></filter></svg>#grayscale");
  filter: gray;
  -webkit-filter: grayscale(100%);
  -webkit-transition: all .6s ease;
  -webkit-backface-visibility: hidden;
}

img.grayscale:hover {
  filter: none;
  -webkit-filter: grayscale(0%);
}

svg {
  background: url(https://image-source.jpg);
}

svg image {
  transition: all .6s ease;
}

svg image:hover {
  opacity: 0;
}</code>

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

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