通过点击一个类触发事件,使另一个类发生display从none到block从而产生height的变化。

在各个类下面添加transition:height 2s;都没有效果

要怎样设置才能使该变化有过渡效果。


回复讨论(解决方案)

设置高度

设置高度

我的页面是用百分比设置的,能不能在不设置px的情况下使用呢

百分比也可以。比如height: 0%;到height: 100%;

百分比也可以。比如height: 0%;到height: 100%;


我的height是auto;在下面设置transition没效果;

是那种点击出下拉栏的那种效果,有三层,所以高度变化有三层,点击事件使通过JS添加的。

所以我只有个变化的DIV,和none类{display:none}控制出现和消失

不知道要怎么做才能加过渡效果QAQ

听你的描述,貌似是出在display:none到block的问题吧,你过渡都没声明这个属性,怎么会有从无到有的效果(PS:过渡不支持这个属性)。所以你只要把display:none去掉就行了,让元素的高度变化就行

简单一点说就是我元素本身是display:block,然后通过js 增删none类{display:none}来达到下拉栏的效果;

但是过渡效果不知道如何才能添加进去,直接加transition:height 2s;没有效果

简单一点说就是我元素本身是display:block,然后通过js 增删none类{display:none}来达到下拉栏的效果;

但是过渡效果不知道如何才能添加进去,直接加transition:height 2s;没有效果



别用js去增删none类,改变高度就行。因为你加了这个所有没有效果。





差不多就这样,通过点击有↓的div然后达到增删none类的效果

css方面
.menu-item {
display: block;
height:auto;
width:100%;
background:#B4B4B4;
overflow:hidden;
position:relative;

transition:height 2s; /*没有效果*/
}


简单一点说就是我元素本身是display:block,然后通过js 增删none类{display:none}来达到下拉栏的效果;

但是过渡效果不知道如何才能添加进去,直接加transition:height 2s;没有效果



别用js去增删none类,改变高度就行。因为你加了这个所有没有效果。



那不就得全部重做了

已经不打算纠结display了,但是为什么.none {height:0%!important;}不起作用,!important不是最高级了吗,还是被其他css高度覆盖了

transition过渡功能有局限性,其过渡属性的起始值和终止值都必需是数值型的值。而且必需明确的设定为固定的数值。不能用auto,none,block等属性做过渡

transition过渡功能有局限性,其过渡属性的起始值和终止值都必需是数值型的值。而且必需明确的设定为固定的数值。不能用auto,none,block等属性做过渡

那已经没办法了吗 ~ 能不能不用css也能做出平滑下拉的效果~


transition过渡功能有局限性,其过渡属性的起始值和终止值都必需是数值型的值。而且必需明确的设定为固定的数值。不能用auto,none,block等属性做过渡

那已经没办法了吗 ~ 能不能不用css也能做出平滑下拉的效果~


看看这个
http://stackoverflow.com/questions/3508605/how-can-i-transition-height-0-to-height-auto-using-css



transition过渡功能有局限性,其过渡属性的起始值和终止值都必需是数值型的值。而且必需明确的设定为固定的数值。不能用auto,none,block等属性做过渡

那已经没办法了吗 ~ 能不能不用css也能做出平滑下拉的效果~


看看这个
http://stackoverflow.com/questions/3508605/how-can-i-transition-height-0-to-height-auto-using-css



谢谢,我把一些重要的高度改成max-height和transition:max-height 2x;后可以了!

09-04 05:50