【发布时间】:2013-09-10 17:44:03
【问题描述】:
我正在尝试使用 jquery animate() 函数最小化和扩展“点击”事件上的 div。但是当 div 的高度减小到 0px 时,div 里面的内容仍然可见。我需要在 div 高度变为 0px 时隐藏 div 内的内容,并在 div 展开时可见。请帮我。解决问题
html代码
<ul>
<div class="box">
<li>Input One</li>
<div class="content">
<input type="text" id="input1" />
</div>
</div>
<div class="box">
<li>Input Two</li>
<div class="content">
<input type="text" id="input2" />
</div>
</div>
CSS代码
li {
list-style:none;
background-color:#666;
width:200px;
color:#f0f0f0;
cursor:pointer;
}
.box {
width:200px;
border:1px solid #ccc;
}
.content {
background-color:#ddd;
}
jquery 代码
$(document).ready(function () {
$("li").on('click', function () {
var par = $(this).parent('.box');
if (par.children('.content').css("height") !== "0px") {
par.children('.content').animate({
"height": "0px",
"min-height": "0px"
});
} else {
par.children('.content').animate({
"min-height": "20px",
"height": "auto"
});
}
});
});
在jsfiddle查看此代码
【问题讨论】:
-
为什么不使用 slideToggle()?
-
你可以使用溢出:隐藏;在 .content
-
@isherwood :) 我现在尝试了 slideToggle(),它工作正常。但为什么它不能使用 animate() 工作?这是 animate() 函数的缺点吗?
-
Animate 显然不会自动处理溢出。
标签: jquery