• 1000 закрывающая анимация тоже. есть ли способ добавить задержку только к линиям при наведении, не влияя на анимацию открытия?
$(document).ready(function() {
$('.toggle-button').click(function() {
$(this).toggleClass('open')
});
});
.toggle-button {
width: 24px;
height: 29px;
top: 50%;
left: 64px;
position: fixed;
cursor: pointer;
outline: none;
overflow: hidden;
z-index: 101;
}
.toggle-button:hover span {
animation-name: spanSlide;
}
@keyframes spanSlide {
0% {
transform: translateX(0%)
}
50% {
transform: translateX(100%)
}
51% {
transform: translateX(-100%)
}
100% {
transform: translateX(0%)
}
}
.toggle-button:hover span:nth-child(1) {
animation: spanSlide 1s linear;
}
.toggle-button:hover span:nth-child(2) {
animation: spanSlide 1s linear 0.1s;
}
.toggle-button:hover span:nth-child(3) {
animation: spanSlide 1s linear 0.2s;
}
.toggle-button span {
display: block;
position: relative;
height: 1px;
width: 100%;
background: black;
opacity: 1;
left: 0;
transform: rotate(0deg);
transition: .5s ease-in-out;
z-index: 102;
}
.toggle-button span:nth-child(1) {
top: 1px;
transform-origin: left center;
}
.toggle-button span:nth-child(2) {
top: 11px;
transform-origin: left center;
}
.toggle-button span:nth-child(3) {
top: 22px;
transform-origin: left center;
}
.toggle-button.open span:nth-child(1) {
transform: rotate(45deg);
background-color: #blue;
width: 40px;
animation: none;
animation-delay: none;
}
.toggle-button.open span:nth-child(2) {
width: 0%;
opacity: 0;
transition: .1s;
background-color: #blue;
animation: none;
animation-delay: none;
}
.toggle-button.open span:nth-child(3) {
transform: rotate(-45deg);
background-color: #blue;
width: 40px;
animation: none;
animation-delay: none;
}
.toggle-button:hover {
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="toggle-button">
<span></span>
<span></span>
<span></span>
</div>