@shading

Как плавно скрыть элемент и после убрать его из дом дерева?

Добрый день.
Нужно плавно скрыть элемент и после убрать его из дом дерева, возможно ли это сделать только при помощи css(нужно, чтобы другие элементы заняли его место)? Или можно только поменять стили у элемента и потом с помощью setTimeout изменять ему св-во display?
  • Вопрос задан
  • 3200 просмотров
Решения вопроса 3
Seanyr
@Seanyr
Средствами css убрать из дом нельзя.
Можно скрыть из потока, но все связанные с этим свойства не анимируются.
А можно, например, сделать чтобы он не занимал места в потоке или придумать еще какие-нибудь костыли:
Ответ написан
Комментировать
@yavaskript
изменение дома происходит через JavaScript. Полностью удалить его из дома средствами CSS не получится. Просто скрыть можно
Ответ написан
Eugevin
@Eugevin
22 года, frontend как смысл жизни
Как я понял, ответ так и не был дан. С помощью CSS - никак, ведь CSS не могёт менять DOM-дерево.

С помощью JS - запросто, но уж точно не через setTimeout!

const item = document.querySelector('.item');

item.style.opacity = '0';

item.addEventListener('transitionend', function() {this.remove()});


Пояснение: цепляете нужный вам элемент, потом меняете ему прозрачность и прослушиваете событие transitionend по наступлению которого удаляете элемент из DOM (при этом это произойдет плавно и незаметно для пользователя).

PS: по поводу совместимости у 'transitionend' - все чикибамбони. Поддерживает даже IE10+
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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