我做了一個改變你的JS小提琴,我beleive這是你想要的; please see it here.
你需要在div上指定一個最初的高度(0),並且不要忘記overflow:hidden;以便內容不會「泄露」div。但是,您仍然需要使用jQuery/Javascript來切換類,但這意味着需要更少的JavaScript。 (我切換類的「變」,您將在該小提琴看到)
input {
display:none;
}
label {
display:inline-block;
}
div {
white-space: pre;
background: #eee;
color: #333;
overflow:hidden;
height:0;
opacity:0;
-moz-transition:height 1s opacity 1s;
-webkit-transition:height 1s opacity 1s;
-o-transition:height 1s opacity 1s;
-ms-transition:height 1s opacity 1s;
transition:height 1s, opacity 1s;
}
.changed {
height:200px;
opacity: 1;
}
我增加了一些供應商的前綴爲我不知道你會使用什麼瀏覽器和我的過渡CSS屬性格式m在Firefox上,所以我需要-moz-前綴lol :)
我能看到的唯一問題是高度:auto或height:100%不會動畫,所以您需要指定ems或px ...如果這將是一個問題(如內容將是動態的),我會建議使用jQuery的高度動畫。
來源
2013-02-13 15:27:46
Dan
我可以證實這個工作,你看JSFiddle嗎?你還使用什麼瀏覽器? – Dan 2013-02-14 09:38:42