Преобразование перехода на выходе при наведении

Я использую "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);
}
Другие вопросы по тегам