#css
#css
Вопрос:
Я хотел создать div, у которого есть фоновое изображение и прозрачный цвет фона поверх него с некоторым текстом. При наведении прозрачный цвет фона должен смещаться к нижней части div, как показано на рисунке:
https://i.ibb.co/pJFPvFB/Screenshot-2019-03-26-Zeplin-Project.png
По умолчанию используется левый блок. Правый блок — это состояние наведения.
Я изменил этот фрагмент:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_image_overlay_fade
Я изменил предоставленный стиль на:
<style>
.container {
position: relative;
width: 50%;
}
.image {
display: block;
width: 100%;
height: auto;
}
.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
opacity: 0;
transition: .5s ease;
background-color: #008CBA;
}
.container .overlay {
opacity: 0.75;
}
.container:hover .overlay {
opacity: 0;
}
.text {
color: white;
font-size: 20px;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
text-align: center;
}
</style>
Отредактировано:
Моя проблема
Я попытался добиться простой анимации скольжения на моем, как показано на предоставленном мной изображении. Смотрите это: https://i.ibb.co/pJFPvFB/Screenshot-2019-03-26-Zeplin-Project.png
Я пробовал что-то подобное — https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_image_overlay_fade
Я отредактировал css, который они предоставили, в css, который я предоставил выше.
Пожалуйста, посмотрите на изображение, которое я предоставил. Я хотел добиться этого.
Комментарии:
1. Привет, не могли бы вы объяснить в вопросе, с какой проблемой вы столкнулись в данный момент?
2. привет, не могли бы вы, пожалуйста, поделиться целым кодом, чтобы мы могли помочь
3. @DKyleo Я отредактировал вопрос
Ответ №1:
Попробуйте это.
.container {
position: relative;
width: 50%;
}
.image {
display: block;
width: 100%;
height: auto;
}
.overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
transition: .5s ease;
background-color: #008CBA;
}
.container:hover .overlay {
transition: .5s ease;
height: 0;
}
.text {
color: white;
font-size: 20px;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
text-align: center;
}
<div class="container">
<img src="https://i.ibb.co/pJFPvFB/Screenshot-2019-03-26-Zeplin-Project.png" alt="Avatar" class="image">
<div class="overlay">
<div class="text">Hello World</div>
</div>
</div>
Надеюсь, этот код может вам помочь.
Комментарии:
1. Привет @Pullata, это работает. Но я не хочу, чтобы весь оверлей выпадал. Около 5 пикселей наложения все еще должно оставаться внизу. Если вы посмотрите на предоставленное мной изображение, вы поймете, что я имею в виду. Спасибо.
2. Я это исправил. Спасибо. высота: 15 пикселей;
Ответ №2:
Привет, надеюсь, это то, что вы ищете
.container:hover .overlay {
animation-name: slideDown;
-webkit-animation-name: slideDown;
animation-duration: 1s;
-webkit-animation-duration: 1s;
animation-timing-function: ease;
-webkit-animation-timing-function: ease;
opacity: 1 !important;
}
Комментарии:
1. Измените фон наложения на «background-color: rgba(0, 140, 186, .6);» в приведенной выше скрипке
2. это прямо противоположно тому, чего я хочу. Состояние наведения и состояние по умолчанию должны поменяться местами. т.Е. по умолчанию наложение будет на месте. При наведении наложения исчезнет.
Ответ №3:
надеюсь, это то, что вы ищете
.box {
width: 200px; height: 100px;
background-size: 100% 200%;
background-image: linear-gradient(to bottom, red 50%, black 50%);
-webkit-transition: background-position 1s;
-moz-transition: background-position 1s;
transition: background-position 1s;}