JSFiddle - React, Tailwind, and code Playground
by danielugalde
HTML
<div class="mascara">
<img class="experimento" src="http://2.bp.blogspot.com/-wi-jCCp3bHg/UXCfHyaAwoI/AAAAAAAAAKs/mtl0ke0SO2c/s1600/Personajes_Toy_Story_2.jpg" alt=""/>
</div>
CSS
.mascara{
border:2px solid red;
width:150px;
height:150px;
overflow:hidden;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
position:absolute;
top:0;
left:0;
background: green;
}
.mascara:hover{
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
}
.mascara:hover > .experimento{
-webkit-filter: grayscale(0%);
-moz-filter: grayscale(0%);
-ms-filter: grayscale(0%);
-o-filter: grayscale(0%);
filter: grayscale(0%);
filter:none; /* Firefox 10+, Firefox on Android */
filter: gray; /* IE 6-9 */
}
.experimento{
z-index:0;
position:relative;
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
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 10+, Firefox on Android */
filter: gray; /* IE6-9 */
-webkit-filter: grayscale(100%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
-webkit-transition: all 0.5s ease-out; /* Chrome 1-25, Safari 3.2+ */
-moz-transition: all 0.5s ease-out; /* Firefox 4-15 */
-o-transition: all 0.5s ease-out; /* Opera 10.50–12.00 */
transition: all 0.5s ease-out; /* Chrome 26, Firefox 16+, IE 10+, Opera 12.10+ */
}