[css动画] transition动画之后执行display:none,动画不生效,怎么解决?

大家好,我遇到的问题是一个类似于微信聊天的时候点击加号出现菜单,
图片描述

打开菜单的时候没有什么问题,关闭菜单是先transition动画,然后设置display为none
但是这样做好像display会破坏transition的执行,动画不会生效,请问怎么解决这个问题?

阅读 14.8k
3 个回答

你的display:none应该是立刻就执行了,并没有在transition动画后执行,所以直接就隐藏了。
如果你需要这样做的话
1、你可以延时执行dislpay:none的操作。setTimeout(function(){//执行},200);
2、如楼上操作用jQuery的animate,然后在animate的回调中设置dislpay:none;
3、直接眼红jQuery的slidedown

动画可以写在jQueryanimate()中,动画完成后执行让它display:none的回调函数

监听transitionend事件,在回调里面执行display:none操作

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题