javascript - 对一个有css3动画容器hide().show(),动画不触发,但给show加一个定时器后,动画触发,为什么?
怪我咯
怪我咯 2017-04-11 11:26:37
[JavaScript讨论组]

有一个p容器,我加了css3动画的class,按理说如果我对这个容器进行hide之后show操作(比如toggle它),容器显示后能触发动画。

但事实是:

content.hide().show()
//或者
content.hide();
content.show();

动画都没有触发。而:

content.hide();
timeOut = setTimeout(function(){
    imgContent.show();
},0)

却可以触发动画,这是为什么?

一个在线demo:
https://jsfiddle.net/fenglinzeng/rp6zhfp5/2/

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
迷茫

基于我的经验给出的答案是,hide的结果是为元素添加了display:none这个样式,toggle(show)的时候换成了block,display在css3是没有对应动画的,所以执行动画的时候遇到了display:none动画就无效了。

settimeOut其实是先去掉了display:none,这个样式,再执行动画的时候就可以了;

你可以通过先删除元素的这个样式,然后再添加动画的class来验证。

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

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