我有一个包含不同部分的网站,每个部分都设置为浏览器窗口的高度。在某些情况下,内容比浏览器窗口高,我使用一个函数来检查这一点,并将 div 的高度设置为其内容的高度,使用以下函数:
$('.container').each(function() {
var _this = $(this);
var this_ = this;
var windowH = $(window).height();
var textH = $('.text', this).height();
if(windowH < textH) {
$(this).css({'height': textH + 'px'});
}
else {
$(this).css({'height': windowH + 'px'});
}
$(window).resize(function(){
var windowH = $(window).height();
var textH = $('.text', this_).height();
if(windowH < textH) {
_this.css({'height': textH + 'px'});
}
else {
_this.css('height', windowH + 'px');
}
});
});
我遇到的问题是我想动态隐藏和显示内容,当新内容高于 div 的当前高度时,我希望 div 扩展以包含它。我正在使用该功能,
$('#container').on('click', 'p', function () {
$(this).height('300px');
var windowH = $(window).height();
$('#container').css({
'height': ($('#container .text').height() + 'px')
});
var textH = $('#container').height();
if (windowH < textH) {
$('#container').css({
'height': textH + 'px'
});
} else {
$('#container').css('height', windowH + 'px');
}
});
但没有成功。我创建了一个小提琴,http://jsfiddle.net/wDRzY/