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

CSSを使用してマウスオーバー時に色を復元してグレースケールを実現するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-26 08:39:02
オリジナル
228 人が閲覧しました

How to Achieve Grayscale with Color Restoration on Mouse-Over Using CSS?

CSS を使用したマウスオーバー時の色復元によるグレースケール

マウスオーバー時の色復元によるグレースケールの外観は、さまざまな方法で実現できます。 、IE と Firefox の両方でブラウザ間の互換性を提供します。

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

この手法では、ベンダーのフィルター プロパティを利用します。サポートされているすべてのブラウザーで画像をグレースケールするための接頭辞:

<code class="css">img.grayscale {
  filter: url("data:image/svg+xml;utf8, ..."); /* Firefox 3.5+ */
  filter: gray; /* IE6-9 */
  -webkit-filter: grayscale(100%); /* Chrome 19+, Safari 6+ */
}

img.grayscale:hover {
  filter: none;
  -webkit-filter: grayscale(0%);
}</code>
ログイン後にコピー

方法 2: 純粋な CSS (2 つの画像を使用)

もう 1 つのアプローチには、2 つの画像を使用します。バージョンとカラーバージョン。最初はグレースケール画像が表示され、ホバー状態がカラー画像に移行します。

<code class="css">img {
  transition: all .6s ease;
}

img:hover {
  opacity: 0;
}

.grayscale {
  opacity: 1;
}</code>
ログイン後にコピー
<code class="html"><img class="grayscale" src="grayscale_image.jpg">
<img class="colored" src="colored_image.jpg"></code>
ログイン後にコピー

方法 3: CSS フィルターを使用した SVG

IE10 の場合最新のブラウザでは、インライン SVG を使用してフィルターを適用し、グレースケール効果を動的に制御できます:

<code class="css">svg image {
  transition: all .6s ease;
}

svg image:hover {
  opacity: 0;
}</code>
ログイン後にコピー
<code class="xml"><svg ...>
  <defs>
    <filter id="filtersPicture">
      <feColorMatrix type="saturate" values="0" />
    </filter>
  </defs>
  <image filter="url(#filtersPicture)" ... />
</svg></code>
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート