我有以下代码:窗口宽度
function c() {
var h = ($(window).height() - $('#maincontainer').outerHeight())/2;
var w = ($(window).width() - $('#maincontainer').outerWidth())/2;
$('#maincontainer').css('position', 'absolute');
$('#maincontainer').css('top', h);
$('#maincontainer').css('left', w);
}
$(window).resize(c);
$(window).load(c);
的resize
事件上正常工作每一个浏览器我试过,但load
总是返回8像素的宽度值,把maincontainer
DIV上屏幕的左边界。 这正确执行把一个div仅在IE8窗口上的中间,不能在Chrome 22和Firefox 16
编辑: 似乎解决工作:
$(window).ready(c);
$(window).load(c);
$(window).resize(c);
而且,the body
应有width: 100%
。
问题可能是窗口首先加载,在加载任何其他html之前触发事件。 –
这就是我的想法,但我不知道这个解决方法。 –
尝试在'ready'事件上发射而不是。 '$(document).ready(c)' –