В моём скрипте функция анимирует появление блока на странице путём увеличения его высоты. Анимация реализована заменой класса элемента. Но блок не анимируется, а сразу переходит в конечное состояние. Другими словами анимация просто пропускается. Но если ввести команду замены класса элемента в консоль, то блок плавно появляется на странице, то есть всё работает так как нужно. Ниже представлены описание классов и фрагмент когда, который некорректно отрабатывает в скрипте. Подскажите пожалуйста возможные причины такого поведения элемента.
//Css
.disactive{
padding: 0;
max-height: 0;
}
.animate{
max-height: 500px;
padding: 15px 10px 15px 15px;
transition-property: max-height, padding-top, padding-bottom, background-color;
transition-duration: 1s;
}
//JS
document.querySelector('.disactive').classList.replace('disactive',
'animate');
P.S. данный фрагмент когда выполняется в самом конце функции, и после него никакие другие функции не вызываются. То есть порядок выполнения этого фрагмента в скрипте и через консоль одинаков.
Проблема в том, что в DOM
элемент попадает сразу с классом animate
и ничего не знает про первоначальное состояние, все что нужно сделать - отложить добавление класса с анимацией
setTimeout(e => document.querySelector('.disactive')
.classList.replace('disactive','animate'));
.disactive{
padding: 0;
max-height: 0;
background-color:wheat;
}
.animate{
max-height: 500px;
padding: 15px 10px 15px 15px;
background-color:red;
transition-property: max-height, padding-top, padding-bottom, background-color;
transition-duration: 1s;
}
<div class="disactive"></div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть несколько компонентовОдин отвечает за дату, другие за время
Есть горизонтальный сайт который работает через slick и работает по блочноНужно чтобы, при скролле на следующий слайд запускалась анимация...
К примеру я разрабатываю продукт на angular 1Есть ли возможность, чтобы не открывать "инструменты разработчика" в браузере, а непосредственно...
Я создаю фон, который почему-то перекрывает позже созданный мною паттернНе могу понять, как сделать наоборот