CSS transition-behavior让display none也有动画效果

普通显示隐藏出现动画效果(如果设置了diaplay:none隐藏,然后用JS显示,动画效果transition是无效的)

一、元素先显示,透明度0,然后下个执行设置透明度1

 

.element.active{
  display:block;
  animation:fadeIn .2s both;
}
@keyframes{
  from{opacity:0;}
  to{opacity:1;}
}

 

二、transition-behavior属性

<!--html-->
<button id="trigger">图片显示与隐藏</button>
<img id="target" src="1.jpg" />

<!--js-->
trigger.onclick = function () {
    target.toggleAttribute('hidden');    
};

<!--css-->
img {
    transition: .25s allow-discrete;
    opacity: 1;
}

img[hidden] {
    opacity: 0;
}

三、使用@starting-style规则声明过渡起点

 

img {
    transition: .25s allow-discrete;
    opacity: 1;
    @starting-style {
      opacity: 0;
    }
}

 

 

 

原文来自鑫大佬:https://www.zhangxinxu.com/wordpress/2024/06/css-transition-behavior/

 

posted @ 2024-07-09 10:35  超哥20  阅读(7)  评论(0编辑  收藏  举报