据我所知,没有原生的 jQuery 函数来检测自动宽度或高度。所以我写了一个插件来做到这一点。
$.fn.isAuto = function(dimension){
if (dimension == 'width'){
var originalWidth = this.innerWidth();
var marginLeft = parseInt(this.css('margin-left'));
var testMarginWidth = marginLeft+50;
this.css('margin-left', testMarginWidth);
var newWidth = this.innerWidth();
this.css('margin-left', marginLeft);
if(newWidth<originalWidth){
return true;
}
else{
return false;
}
}
else if(dimension == 'height'){
var originalHeight = this.height();
this.append('<div id="test"></div>');
var testHeight = originalHeight+500;
$('#test').css({height: testHeight});
var newHeight = this.height();
$('#test').remove();
if(newHeight>originalHeight){
return true;
}
else{
return false;
}
}
};
最初,我写它是为了做高度,所以我只是将它扩展为包括宽度。你只是这样称呼它:
$('#element').isAuto('width');
或者
$('#element').isAuto('height');
这是一个演示插件功能的小提琴。