Ответ, потому что я искал решение для этого.
ручка в ответе @chrscblls работает хорошо, если у вас белый или черный фон, а у меня - нет.Кроме того, изображения были сгенерированы с помощью ng-repeat, поэтому у меня не может быть их URL в моем css, и вы не можете использовать :: after для тегов img.
Итак, я решил обойти и подумалэто может помочь людям, если они слишком спотыкаются здесь.
Так что я сделал почти то же самое с тремя основными отличиями:
- URL-адрес в моем теге img.(и метку) в другом элементе div, в котором будет работать :: after.
- «mix-blend-mode» установлен на «разность» вместо «multiply» или «screen».
- Я добавил :: before с точно таким же значением, чтобы :: after выполнял «разницу» с «разницей», сделанной :: before, и отменил сам.
Чтобы изменить его с черного на белый или с белого на черный, цвет фона должен быть белым.От черного до цвета, вы можете выбрать любой цвет.От белого до цветов, вам нужно будет выбрать цвет, противоположный тому, который вы хотите.
.divClass{
position: relative;
width: 100%;
height: 100%;
text-align: left;
}
.divClass:hover::after, .divClass:hover::before{
position: absolute;
width: 100%;
height: 100%;
background: #FFF;
mix-blend-mode: difference;
content: "";
}
https://codepen.io/spaceplant/pen/oZyMYG