HTML
<div class="element">
<p>I want to center this element vertically and horizontally.</p>
</div>
CSS
.element
{
background: #eee;
border: 1px solid #ccc;
font-size: 24px;
margin: 10px;
padding: 20px;
position: absolute;
}
jQuery
jQuery(document).ready(function($) {
var $element = $('.element');
center();
$(window).on('resize', function() {
center();
});
function center() {
var width = $element.outerWidth(true);
var height = $element.outerHeight(true);
console.log(width);
console.log(height);
$element
.stop(true)
.animate({
top: Math.max(0, ($(window).height() - height) / 2),
left: Math.max(0, ($(window).width() - width) / 2)
});
}
});
问题
如果我调整窗口大小,则元素不会居中,因为outerWidth() 和outerHeight() 是错误的。
刷新后问题消失。
火狐上的测试结果
默认值:元素大小 - 670x134(好)
768x1024:元素大小 - 198x254(错误)- 670x134(刷新后良好)
360x640:元素大小 - 198x254(错误)- 360x182(刷新后良好)
问题
知道为什么会出现此问题以及如何解决吗?
笔记
我不希望元素具有固定的宽度或高度。