РЕШЕНИЕ: Решение, которое я нашел, заключается в использовании двух элементов div друг над другом (чтобы сделать функцию более понятной, я сделал один из элементов div красным), в то время как для эффекта нужно анимировать два элемента div, он должен быть чище ибыстрее, чем при использовании javascript:
<style>
.outerDiv {
width: 100%;
height: 50px;
position: relative;
}
.hover1 {
height: 50px;
width: 50px;
background: black;
position: relative;
top: 0px;
transition: width 2s
}
.hover2 {
height: 50px;
width: 50px;
background: red;
position: relative;
top: -50px;
transition: width 2s 2s
}
.outerDiv:hover .hover2 {
width: 100%;
transition: width 0s 1.9s;
}
.outerDiv:hover .hover1 {
width: 100%;
transition: width 2s;
}
</style>
<div class="outerDiv">
<div class="hover1"></div>
<div class="hover2"></div>
</div>
ВОПРОС: Я хочу, чтобы div, который расширяется вправо при наведении курсора, имел разные задержки возврата назад, если расширение вправо полностью завершено или нет.Я хотел бы добиться этого без Javascript, так как я знаю, как это сделать с помощью js.
Я уже пытался использовать комбинации @keyframes и transition, но не смог
<style>
#hoverDiv {
height: 50px;
width: 50px;
background: black;
transition: width 2s;
transition-delay: 0s;
}
/*
#hoverDiv:has-transitioned{
transition-delay-for-mouseoff:1s;
}
*/
#hoverDiv:hover {
width: 100%;
transition: width 2s;
}
</style>
<div id="hoverDiv"></div>