Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.05.2020, 19:13
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

toggle vanilla js
Я принудительно использую таймеры который добавляют display:none.
Т.к без него скрытый блок мишает видимым объектам. Причина тому hidden { position:relative;
Если заменить его на position:absolute; Это поможет, но скрытие div тогда происходит не комильфо.

Может есть какие-то более красивые решения?


.hidden {
  opacity:0;
  position:relative;
  max-height:0px;
  margin:0 auto;
  transition:opacity .5s ease, margin .5s .3s ease, max-height .5s .2s ease;
}
.none {
 display:none !important;
}
.visible {
  opacity:1;
  position:relative;
  z-index:10;
  max-height:1800px;
  margin:20px auto;
  transition:opacity .5s .2s ease, margin .5s ease, max-height 1s ease;
}




function toggle(id){
element = document.getElementById(id);
if(element.classList.contains('visible')){
  element.classList.remove('visible');
  element.classList.add('hidden');
setTimeout(function(){
element.classList.add('none');
}, 500);
} else {
element.classList.remove('none');
setTimeout(function(){
element.classList.remove('hidden');
element.classList.add('visible');
}, 500);

}
}

<a href="#" nclick="toggle('form');return false;">toggle</a>
    <div id="form" class="none hidden">***<div>

Последний раз редактировалось dima85, 28.05.2020 в 19:21.
Ответить с цитированием
  #2 (permalink)  
Старый 28.05.2020, 19:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

dima85,
transitionend

FadeIn & FadeOut js

Последний раз редактировалось рони, 28.05.2020 в 19:54.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу крутого fronted developera (Vanilla Js) Наталья Aks Работа 0 09.12.2017 08:51
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
BackEnd/FrontEnd Developer (Native JS) Abab Работа 0 25.12.2016 10:56
js стиль render для react.js vflash Ваши сайты и скрипты 5 01.04.2016 22:57
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28