我正在尝试制作一个可以通过点击按钮扩展自动高度的框。 默认情况下,该框的高度为30px,当我单击按钮时,框的扩展高度取决于内容的数量。也是要切换的按钮。
任何人都可以帮我解决Jquery的问题吗?
这是我的代码。
<div class="box">
text <br>text <br>text <br>text <br>text <br>text <br> text <br>text <br>text <br>text <br>text <br>text <br>
</div>
<a href="#" class="btnMore">button</a>
.box { height:30px; overflow:hidden; }
答案 0 :(得分:1)
不知道是否有更好的方法,请尝试
$('.btnMore').click(function () {
var x = $(this).prev().stop(true);
x.animate({
height: x.prop('scrollHeight')
})
})
演示:Fiddle
答案 1 :(得分:1)
$(document).ready(function(){
var trg = $("#box"), // The target container
preHeight = 200; // The initial height
trg.css('height', preHeight); // Set the initial height on page load
$('.link').on('click', function(){
var curHeight = trg.height();
if(preHeight == curHeight){
var xHeight = 'auto';
$(this).text('Shrink');
} else {
var xHeight = preHeight;
$(this).text('Stretch');
}
var trgHeight = trg.css('height', xHeight).height();
trg.height(curHeight).animate({ height: trgHeight }, 600, function() { trg.css('height', xHeight); });
});
});
答案 2 :(得分:0)
使用此jquery代码
$('.btnMore').click(function(){
var $this = $(this);
if($this.data('expanded') == "yes"){
$this.data('expanded',"no");
$('.box').animate({height:'30px'});
}else{
$this.data('expanded',"yes");
$('.box').css({height:'auto'});
}
});
检查这个小提琴。
答案 3 :(得分:0)
你可以这样做:
$('.btnMore').click(function () {
var el = $('.box'),
curHeight = el.height(),
autoHeight = el.css('height', 'auto').height();
el.height(curHeight).animate({
height: autoHeight == curHeight ? "30px" : autoHeight
}, 1000);
});
<强> Fiddle Demo 强>
答案 4 :(得分:0)
要将高度从30px更改为自动,请使用此代码
$('#test').click(function() {
autoHeight = $('.box').css('height', 'auto').height();
$('.box').animate({height:autoHeight}, 500);
}
如果您想使用此代码,下面的代码会将div的高度在30px和auto之间切换
$('#test').clickToggle(function() {
autoHeight = $('.box').css('height', 'auto').height();
$('.box').animate({height:autoHeight}, 500);
},
function() {
autoHeight = $('.box').css('height', '30px').height();
$('.box').animate({height:autoHeight}, 500);
});