Il existe de nombreuses méthodes pour arriver à ce résultat:
1.) CSS-Seulement à l'aide d'une seule image couleur en image
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+ & Safari 6+ */
}
img.grayscale:hover {
filter: none;
-webkit-filter: grayscale(0%);
}
Démo et Source
2.) CSS Uniquement, à l'aide de deux séries d'Images (niveaux de Gris et Couleur)
Vous auriez besoin de deux copies de l'image en niveaux de gris et l'autre en couleur, et ensuite, à l'aide de CSS, vous pouvez simplement appliquer un hover style de votre image colorée.
#yourimage { background: url(../YourBlackAndWhiteImage.png);}
#yourImage:hover { background: url(../YourColoredImage.png};}
Travail De Démonstration
cela peut également être réalisé à l'aide de jQuery hover() méthode.
3.) À l'aide d'une bibliothèque spécifique pour accomplir cette fonctionnalité:
La désaturation de la bibliothèque manipule des images, vous permettant de basculer facilement entre une version en niveaux de gris et plein de couleur version.