Podałem swój komentarz jako odpowiedź, ponieważ moje przypuszczenie było słuszne. Ponieważ obraz jest obrazem .png
, może on zawierać przezroczyste piksele. Jak widać na przykładzie, Twój kod nie działa. Po najechaniu myszą zdałem sobie sprawę, że białe elementy twojego zdjęcia są w rzeczywistości przezroczyste.
To, co zrobiłem, to po prostu skopiowanie obrazu do MS Paint i zapisanie go jako .jpg
. W związku z tym, ponieważ format jpg
nie obsługuje przezroczystych pikseli, nie ma już przezroczystych pikseli. Powinno to przezwyciężyć problem odwrotny.
Teraz, po uruchomieniu kodu, widać, że działa bezbłędnie.
img:hover {
-webkit-filter: grayscale(1) invert(1);
filter: grayscale(1) invert(1);
}
<img src="http://oi64.tinypic.com/6tibys.jpg">
Więc jedyną rzeczą, którą musisz zrobić, to: otwórz edytor zdjęć i wypełnić te „białe” ciała z białym kolorem. Zewnętrzne części mogą pozostać przezroczyste. To naprawi problem, jak sądzę.
Przypuszczam, że kolor w organizmie w tych 2 białych mężczyzn (przedstawione przez czarną linią) jest nie biały, ale przezroczysty. – KarelG