Maison  >  Article  >  interface Web  >  Comment convertir des images d'arrière-plan en niveaux de gris dans différents navigateurs ?

Comment convertir des images d'arrière-plan en niveaux de gris dans différents navigateurs ?

DDD
DDDoriginal
2024-10-27 07:55:03268parcourir

How to Convert Background Images to Greyscale Across Different Browsers?

Comment créer des images d'arrière-plan en niveaux de gris avec CSS

À l'ère des conceptions Web vibrantes et dynamiques, il est parfois nécessaire d'incorporer une touche de simplicité subtile. Une façon d'y parvenir consiste à convertir les images d'arrière-plan en niveaux de gris, ce qui peut conférer une esthétique classique ou vintage à un site Web.

Filtres CSS3 multi-navigateurs

L'approche la plus simple pour mettre en niveaux de gris un arrière-plan L'image consiste à appliquer le filtre CSS3 en niveaux de gris :

-webkit-filter: grayscale(100%);

Cependant, cette technique ne fonctionne que dans Chrome v.15 et Safari v.6 en raison des limitations de compatibilité du navigateur.

SVG multi-navigateurs Filtre

Pour obtenir des effets de niveaux de gris sur plusieurs navigateurs, vous pouvez utiliser des filtres SVG :

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");

Cette solution fonctionne dans la plupart des principaux navigateurs, notamment Firefox, Chrome et Edge.

JQuery Animation

Si vous souhaitez activer dynamiquement l'effet de niveaux de gris à l'aide de JavaScript, vous pouvez utiliser jQuery :

$(".nongrayscale").hover(function () {
  $(this).addClass("grayscale").fadeTo(400, 1);
});
$(".grayscale").hover(function () {
  $(this).removeClass("grayscale").fadeTo(400, 1);
});

Ce code ajoutera une classe de niveaux de gris et fondra l'image au survol .

Compatibilité IE10-11

Dans Internet Explorer 10-11, la technique de filtre SVG ci-dessus ne fonctionne pas. Au lieu de cela, vous pouvez utiliser un filtre de désaturation :

<filter xmlns="http://www.w3.org/2000/svg" id="desaturate">
  <feColorMatrix type="saturate" values="0" />
</filter>

Ce filtre peut être appliqué aux images à l'aide de l'attribut filter.

En utilisant ces méthodes, vous pouvez facilement mettre en niveaux de gris les images d'arrière-plan en CSS, ajoutant une touche intemporelle à vos conceptions Web tout en conservant la compatibilité entre navigateurs.

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