#html #css
#HTML #css
Вопрос:
У меня есть изображение, к которому я применил фильтр в css, настолько серое, что я бы хотел, чтобы это изображение меняло цвет, поднимаясь вверх.
Я также хотел бы, чтобы эта анимация выполнялась автоматически
CSS :
img{
filter: grayscale(1);
-webkit-filter: grayscale(1);
-moz-filter: grayscale(1);
-o-filter: grayscale(1);
-ms-filter: grayscale(1);
transition: all .3s ease-out;
}
img:hover{
filter: grayscale(0);
-webkit-filter: grayscale(0);
-moz-filter: grayscale(0);
-o-filter: grayscale(0);
-ms-filter: grayscale(0);
transition: all .3s ease-out;
}
Комментарии:
1. я не понимаю, извините, мое изображение серое, и я бы хотел, чтобы оно меняло цвет снизу вверх
Ответ №1:
Вы можете рассмотреть градиентный слой в верхней части изображения и выбрать режим смешивания для создания эффекта оттенков серого, а затем анимировать его положение для создания эффекта слайда:
.box {
display: inline-block;
position: relative;
overflow:hidden;
}
img {
display: block;
}
.box::after {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 200%;
background:linear-gradient(black 45%,transparent 55%);
mix-blend-mode:color;
transition:1s;
}
.box:hover::after {
transform:translateY(-50%);
}
<div class="box">
<img src="https://picsum.photos/id/1/200/200">
</div>
<div class="box">
<img src="https://picsum.photos/id/108/200/200">
</div>
<div class="box">
<img src="https://picsum.photos/id/1068/200/200">
</div>
background-filter также может это сделать:
.box {
display: inline-block;
position: relative;
overflow:hidden;
}
img {
display: block;
}
.box::after {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100%;
backdrop-filter:grayscale(1);
transition:1s;
}
.box:hover::after {
transform:translateY(-100%);
}
<div class="box">
<img src="https://picsum.photos/id/1/200/200">
</div>
<div class="box">
<img src="https://picsum.photos/id/108/200/200">
</div>
<div class="box">
<img src="https://picsum.photos/id/1068/200/200">
</div>
Комментарии:
1. спасибо, как я могу запустить эту анимацию автоматически?
2. @Mcalan используйте ключевые кадры: developer.mozilla.org/en-US/docs/Web/CSS/@keyframes
3. хорошо, спасибо, есть ли решение, чтобы сделать мое изображение еще темнее?
4. @Mcalan к последнему решению вы можете добавить фон, например
background: rgba(0,0,0,0.5);
5. Я использовал background, и у меня не было желаемого результата zupimages.net/up/21/04/p9nn.png