Задать вопрос

Плавность изменния свойства display?

Есть элемент со свойством display: none. По клику на определенную кнопку, к этому элементу прикрепляется класс со свойством display: block. Вопрос: можно ли это сделать плавно, через transition как-то, например. Просто вот все отлично работает, если я меняю свой-во не display, а visibility соответственно, тогда можно спокойно плавно менять opacity, transform и т.д и делать это плавно через transition. Но со свойством display у меня уже это все не работает. В общем, думаю нормально объяснил, спасибо заранее.
  • Вопрос задан
  • 302 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Stepik
    Основы HTML и CSS
    2 недели
    Далее
  • Бруноям
    Вёрстка на HTML и CSS
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 3
andykov
@andykov
Shit happens
Нельзя. Transition работает с числовыми значениями.
Ответ написан
Комментировать
thewind
@thewind
php программист, front / backend developer
Ставите opacity:0, потом display:block; потом плавно меняете Opacity от 0 до 1
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Не выйдет, никак. Точно так же как visibility и float. Все что влияет на поток документа неможет быть анимировано.

Решение: сначала делаем класс hide с opacity 0, у стиля элемента ставим транзишен на opacity. Затем, по окончанию анимации (из js отлавливаем событие) выставляем display:none или вовсе удаляем из DOM. То же самое в обратном порядке для анимированного возникновения: сначала вставляем в DOM и потом уже анимируем.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы