как добавить задержку к одной анимации c, чтобы она не мешала другой? - PullRequest
0 голосов
/ 09 июля 2020
• 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>

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете создать событие «onmouseover = {() => function_Hover ()}» для своего меню. Затем в вашей function_Hover () вы можете использовать метод setTimeout (function_Delay (), 3000), который активирует функцию function_Delay () через 3000 мс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...