Анимация через toggleClass

141
11 апреля 2019, 09:50

Есть код раскрывающегося меню:

e.mobileOpen.on("click",function(){
n(this).toggleClass("_show", 500),e.mobileContainer.toggleClass("_show", 500)})}

Нужно сделать так что бы меню расскрывалось плавно, знаю как это сделать на jquery но незнаю как на чистом js, заранее спасибо за ответ.

Answer 1

Вместо toggleClassel.classList.toggle('CLASS'), а также не забыть добавить transition для элемента, который собираемся анимировать с помощью добавления класса.

const btn = document.querySelector('div[role="button"]'), 
      menu = document.querySelector('.menu'); 
 
btn.onclick = () => { 
  menu.classList.toggle('_opened'); 
}
div[role="button"] { 
  width: 5rem; 
  padding: 1rem; 
  text-align: center; 
  background-color: #ccc5; 
  text-transform: uppercase; 
  cursor: pointer; 
  user-select: none; 
} 
 
.menu._opened { 
  height: 100px; 
} 
 
.menu { 
  height: 0; 
  overflow: hidden; 
  background: #ccc; 
  transition: all 300ms ease-in-out; 
} 
 
.menu ul { 
  list-style-type: none; 
  padding: 0; 
}
<div> 
  <div role="button">Toggle</div> 
  <div class="menu"> 
    <ul> 
      <li>lorem</li> 
      <li>dolor</li> 
      <li>sit</li> 
      <li>amet</li> 
    </ul> 
  </div> 
</div>

READ ALSO
Как получать значение из массива по кругу?

Как получать значение из массива по кругу?

Мне нужно получать значение массива по индексуСуть в том, что по клику на кнопку prev, мне нудно получить следующее значение в массиве, а по клику...

152
Обработчик события onkeypress для тега ins

Обработчик события onkeypress для тега ins

Работаю с тегом , на который мне нужно повесить два обработчика событий: onpaste и onkeypressДля наглядности:

153
Как очистить верстку от JS кода?

Как очистить верстку от JS кода?

Есть скаченная из интернета страница с сайтаНужно очистить весь файл с версткой от JS кода

141
ReactCSSTransitionGroup: Почему не работает transitionAppear?

ReactCSSTransitionGroup: Почему не работает transitionAppear?

Пытаюсь сделать плавное появление/исчезновение уведомления, но не работает transitionAppearДелаю добавление элемента(всплытие уведомления) на событие...

149