Maison  >  Article  >  interface Web  >  Comment obtenir des effets de niveaux de gris multi-navigateurs sur les images d'arrière-plan CSS ?

Comment obtenir des effets de niveaux de gris multi-navigateurs sur les images d'arrière-plan CSS ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 09:39:02568parcourir

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

Solution multi-navigateurs pour atténuer les images d'arrière-plan CSS en niveaux de gris

Malgré la disponibilité du filtre CSS3, l'application d'effets en niveaux de gris aux images d'arrière-plan reste un défi sur différents navigateurs. La solution utilisant le filtre SVG fonctionne pour Safari et Chrome, mais pas pour les autres navigateurs.

Pour surmonter cette limitation, une approche alternative consiste à utiliser du code SVG en ligne pour créer un filtre personnalisé. Cette méthode est compatible avec tous les navigateurs modernes, y compris IE10 et 11.

Exemple de code pour 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>

Solution jQuery pour basculer l'effet en niveaux de gris :

Si vous souhaitez activer/désactiver dynamiquement l'effet de niveaux de gris, vous pouvez utiliser 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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn