Кажется, это проблема с откатом.Вот еще одна идея, чтобы получить тот же эффект без проблем и с меньшим количеством кода.Мы определяем 4 линии с градиентом: две на каждой стороне и в той же позиции.При наведении мы просто уменьшаем высоту серых и увеличиваем высоту синих.top
/ bottom
будет определять направление анимации:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.content {
height: 100vh;
width: 50vw;
position: absolute;
left: 50%;
transform: translateX(-50%);
background:
linear-gradient(#286090,#286090) bottom 0 right 25px,
linear-gradient(#bfbfbf,#bfbfbf) top 0 right 25px,
linear-gradient(#286090,#286090) top 0 left 25px,
linear-gradient(#bfbfbf,#bfbfbf) bottom 0 left 25px;
background-size:3px 0, 3px 100%;
background-repeat:no-repeat;
transition:2s cubic-bezier(.15, .65, 1, .15);
}
.content:hover {
background-size:3px 100%, 3px 0;
}
<div class="content">
</div>