解决方法
有许多方法来实现这一点:
1.)仅CSS,只使用一个彩色图像
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%); }
2.)仅CSS,使用两组图像(灰度和彩色)
您将需要两个副本的图像,一个在灰度和另一个全彩色,然后使用CSS,你可以简单地应用悬停风格,以使用您的彩色图像。
#yourimage { background: url(../YourBlackAndWhiteImage.png);} #yourImage:hover { background: url(../YourColoredImage.png};}
3.)使用特定库来完成此功能:
desaturate库操作图像,允许您轻松在灰度版本和全色版本之间切换。