我正在尝试将div居中,以下是我迄今为止所得到的:
function miniWindow(content) {
$('#miniWindow').hide();
$('#miniWindow').css({'top' : '280px', 'left' : '385px'}); //start position
$('#miniContent').html(content); //<-- the problem line
//center the div
setTimeout( function() {
var width = $('#miniWindow').outerWidth();
var height = $('#miniWindow').outerHeight();
$('#miniWindow').css({'left' : '-='+width/2, 'top' : '-='+height/2});
$('#miniWindow').show();
}, 1000);
}
miniWindow('fubar'); //invoke
问题是,我需要一个超时来给.html()函数设置宽度和高度的时间,尽管.html()应该是同步的!?
有没有其他不使用超时的解决方案来解决这个问题?
outerHeight()和innerHeight)不适用于隐藏元素。
在设置位置(并获取宽度/高度)之前,请尝试调用$('#miniWindow').show()
。