javascript - 对于事先隐藏的元素设置 css3 动画疑问
天蓬老师
天蓬老师 2017-04-10 14:53:59
[JavaScript讨论组]

对于事先在css中设置了display: none的元素,为其用transition进行动画效果时,需要先将其显示,再改变 class 类名

ele.style.display = 'block';
setTimeout(function() {
  ele.classList.add('in');
}, 0);

我的做法是这样的,不过感觉好麻烦,尤其每次都要写一个 setTimeout
求赐教有什么更好的方法?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(4)
PHPz

你可以写个函数封装它,或者不用diaplay: none,直接用opacity: 0来隐藏

PHPz

也许采用 animation 是一个好办法

伊谢尔伦

这个简单啊,你把display:block这个 放到一个类里,和动画的特效放在同一个类不久ok了

迷茫

隐藏一个元素的方法有很多种

  1. display: none
  2. visibility: hidden
  3. opacity: 0
  4. max-height: 0, overflow: hidden
    等等,我就不罗列了。

这些方法中,有的是隐藏后不占据空间,有的要占据,有的是离散状态(没有transition),有的可以有transition。你根据你的需求,然后选择一种方式就好了,实在不能解决你要的动画,用jquery的animate吧。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号