【发布时间】:2012-10-08 19:01:17
【问题描述】:
我有以下代码:
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 总是返回 8px 的宽度值,将maincontainer div 放在屏幕的左边框上。
这仅在 IE8 上正确执行,在窗口中间放置一个 div,在 Chrome 22 和 Firefox 16 上失败。
编辑: 似乎有效的解决方案:
$(window).ready(c);
$(window).load(c);
$(window).resize(c);
另外,the body 应该有 width: 100%。
【问题讨论】:
-
问题可能是窗口首先加载,在加载任何其他 html 之前触发事件。
-
我就是这么想的,但我不知道解决方法。
-
尝试触发
ready事件。$(document).ready(c)
标签: javascript jquery browser error-handling width