【发布时间】:2016-06-12 03:36:21
【问题描述】:
当我点击一个 div 时,我想要第二个 div 展开/折叠。这是使用 JS、HTML 和 CSS 完成的。现在我想要 CSS 过渡动画。
现在我得到的只是一个跳跃扩展和滚动(Edge)或等待后的跳跃(Chrome、Opera、Firefox)。
我尝试将高度设置为 1px 而不是 0px,但这并没有改变任何东西。
function growDiv(id) {
var ele = document.getElementById(id);
if (ele.style.height == '100%') {
ele.style.height = '0px';
} else {
ele.style.height = '100%';
}
}
.main {
font-weight: 700;
overflow: hidden;
cursor: pointer;
}
.secondary {
-webkit-transition: height .5s ease;
-moz-transition: height .5s ease;
-ms-transition: height .5s ease;
-o-transition: height .5s ease;
transition: height .5s ease;
overflow: hidden;
padding-left: 20px;
height: 0px;
cursor: pointer;
}
<div class="main" onclick="growDiv('expandable')">
Expand
</div>
<div class="secondary" id="expandable" onclick="growDiv('expandable')">
number1,
<br>number2,
<br>number3,
<br>number4.
</div>
Codepen 的行为与我所知道的整个网站的行为一样,因此可以很好地衡量;这是密码笔:http://codepen.io/anon/pen/ezJQjM
【问题讨论】:
-
使用 PX 而不是 % 在你的 codepen 上工作(在 JS 函数中)
-
你不能在 px 和 % 之间做动画
标签: javascript css css-transitions