对于事先在css
中设置了display: none
的元素,为其用transition
进行动画效果时,需要先将其显示,再改变 class
类名
ele.style.display = 'block';
setTimeout(function() {
ele.classList.add('in');
}, 0);
我的做法是这样的,不过感觉好麻烦,尤其每次都要写一个 setTimeout
。
求赐教有什么更好的方法?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
只能用visibility:hidden;来玩玩了,再配合opacity,创造fade-in fade-out的效果。
至于兼容性处理,详见本文:http://www.greywyvern.com/?post=337#
你可以写个函数封装它,或者不用diaplay: none,直接用opacity: 0来隐藏
也许采用
animation
是一个好办法你可以封装一下,我现在用这个 https://gist.github.com/bammoo/33c5c797c76422a06cae:
这个简单啊,你把display:block这个 放到一个类里,和动画的特效放在同一个类不久ok了
隐藏一个元素的方法有很多种
等等,我就不罗列了。
这些方法中,有的是隐藏后不占据空间,有的要占据,有的是离散状态(没有transition),有的可以有transition。你根据你的需求,然后选择一种方式就好了,实在不能解决你要的动画,用jquery的animate吧。