我尝试使用标题和内容创建两个div,当我点击标题时,内容应该向上滑动以隐藏自己。
您可以在JSFiddle上找到我的代码。
我的HTML:
<div id="left-content">
<div class="news-block">
<div class="block-head">News membres</div>
<div class="block-content"></div>
</div>
<div class="news-block">
<div class="block-head">News premium & VIP</div>
<div class="block-content"></div>
</div>
</div>
我的JavaScript:
jQuery(document).ready(function($){
$('div.news-block').on('click', '.block-head', function(){
var content = $(this).parent().find('div.block-content');
if (content.is(':visible'))
content.slideUp("slow");
else
content.slideDown("slow");
});
});
我点了一些帖子说你不能在tbody上使用slideUp()作为例子,或者在浮动div上,但正如你所看到的,我的内容&#34; div不浮动,这就是为什么我不明白为什么它不起作用。
你有什么想法吗?
感谢。
答案 0 :(得分:9)
#left-content .news-block .block-content {
background: #c3c3c3;
margin-left: 8px;
height: 50px;
}
使用height而不是min-height css属性。
了解更多信息:
http://bugs.jquery.com/ticket/6618
演示:
答案 1 :(得分:3)
以下是不更改CSS的其他解决方案:
$('div.news-block').on('click', '.block-head', function(){
var content = $(this).parent().find('div.block-content');
if (content.is(':visible')){
content.animate({minHeight: '0px'}, 1000, function(){
$(this).css('display','none');
});
}else{
$(content).css('display','block');
content.animate({minHeight: '150px'}, 1000);
}
});