Мне нужно, чтобы элемент плавно появлялся из ниоткуда. Его изначальные стили:
transition: 'all 1s linear';
display: 'none';
opacity: 0;
При клике он должен появляться и становиться в:
display: 'block';
opacity: 1;
В моем коде он появляется резко и не плавно совсем:
this.trigger.addEventListener('click', ()=>{
this.popupWindow.style.display = 'block';
this.popupWindow.style.opacity = 1;
});
Я нашёл решение и спрятал прозрачность в setTimeout с 1/1000 долей секунды (и он действительно появляется плавно, как написано в css-свойстве transition):
this.trigger.addEventListener('click', ()=>{
this.popupWindow.style.display = 'block';
setTimeout(()=>{this.popupWindow.style.opacity = 1}, 1);
});
Хоть моё решение и работает, оно эстетически мне не нравится и я хотел бы найти более правильный, элегантный и лаконичный вариант решения этой проблемы. Спасибо за внимание.