ホームページ  >  記事  >  ウェブフロントエンド  >  CSS 背景画像でクロスブラウザーのグレースケール効果を実現するにはどうすればよいですか?

CSS 背景画像でクロスブラウザーのグレースケール効果を実現するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 09:39:02568ブラウズ

How to Achieve Cross-Browser Greyscale Effects on CSS Background Images?

CSS 背景画像をグレースケールにフェードするためのクロスブラウザ ソリューション

CSS3 フィルターが利用できるにもかかわらず、背景画像にグレースケール効果を適用することはできません。異なるブラウザ間での挑戦。 SVG フィルターを使用したソリューションは、Safari と Chrome では機能しますが、他のブラウザーでは機能しません。

この制限を克服するための別のアプローチは、インライン SVG コードを使用してカスタム フィルターを作成することです。この方法は、IE10 および 11 を含むすべての最新ブラウザと互換性があります。

IE10-11 のコード サンプル:

<code class="html"><svg>
  <defs>
    <filter xmlns="http://www.w3.org/2000/svg" id="desaturate">
      <feColorMatrix type="saturate" values="0" />
    </filter>
  </defs>
  <image xlink:href="http://www.polyrootstattoo.com/images/Artists/Buda/40.jpg" width="600" height="600" filter="url(#desaturate)" />
</svg></code>

グレースケール効果を切り替えるための jQuery ソリューション:

グレースケール効果を動的に切り替えたい場合は、jQuery を使用できます:

<code class="html"><div id="image" class="nongrayscale">
  rollover this image to toggle grayscale
</div></code>
<code class="javascript">$(document).ready(function () {
  $("#image").mouseover(function () {
    $(".nongrayscale").removeClass().fadeTo(400, 0.8).addClass("grayscale").fadeTo(400, 1);
  });
  $("#image").mouseout(function () {
    $(".grayscale").removeClass().fadeTo(400, 0.8).addClass("nongrayscale").fadeTo(400, 1);
  });
});</code>

以上がCSS 背景画像でクロスブラウザーのグレースケール効果を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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