Преобразование перехода на выходе при наведении
Я использую "translate3d" с "переходом" при наведении, чтобы переместить div в поле зрения.
Это работает правильно при наведении курсора, но при выходе я бы хотел, чтобы он вернулся обратно из поля зрения. В настоящее время это просто исчезает.
Все, что я пробовал, не работает, поэтому я надеялся, что кто-то сможет указать на явную ошибку, которую я совершаю?
Смотрите мою ручку:
https://codepen.io/anon/pen/KeMxoB
А вот и CSS:
a.box-item {
position: relative;
display: block;
overflow: hidden;
}
a.box-item img {
opacity: 1;
transition: opacity 0.35s;
}
a.box-item .text {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
padding: 20px;
margin: 0;
opacity: 0;
transition: transform 0.35s;
transform: translate3d(0,100%,0);
}
a.box-item .text h2 {
color: #FFF;
font-weight: 100;
opacity: 0;
transition: opacity 0.35s;
transition-delay: 0.05s;
}
a.box-item:hover {
background: #000;
}
a.box-item:hover img {
opacity: 0.8;
}
a.box-item:hover .text {
opacity: 1;
transform: translate3d(0,0,0);
}
a.box-item:hover .text h2 {
opacity: 1;
}
3 ответа
Решение
Использование "transition: all 0.35s;"
вместо "transition: transform 0.35s;"
на
a.box-item .text {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
padding: 20px;
margin: 0;
opacity: 0;
transition: all 0.35s;
transform: translate3d(0,100%,0);
}
это поможет вам
Использование transition: transform 2s, opacity 1s 1s;
на элементе.text
transition: transform 2s, opacity 1s 1s;
a.box-item .text {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
padding: 20px;
margin: 0;
opacity: 0;
transition: transform 2s, opacity 1s 1s;
transform: translate3d(0,100%,0);
}
Используйте "переход: все 0,35 с;" вместо "переход: преобразование 0,35 с;", это будет работать.
a.box-item .text {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
padding: 20px;
margin: 0;
opacity: 0;
transition: all 0.35s;
transform: translate3d(0,100%,0);
}