我需要一个元素来顺利出现。他的原始风格:
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 属性中所写):
this.trigger.addEventListener('click', ()=>{
this.popupWindow.style.display = 'block';
setTimeout(()=>{this.popupWindow.style.opacity = 1}, 1);
});
虽然我的解决方案有效,但我不喜欢它在美学上,我想找到一个更正确、更优雅、更简洁的解决方案来解决这个问题。感谢您的关注。
如果可以替换 display: none/block with height: 0/X 可以使用转换和类替换来解决