【问题标题】:Window width on Chrome and Firefox errorChrome 和 Firefox 上的窗口宽度错误
【发布时间】: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


【解决方案1】:

代替:

$(window).resize(c);
$(window).load(c);

做:

$(function(){
    c();
    $(window).resize(c);
});

发生的情况是您在加载任何内容之前询问文档的大小,因此您(几乎)什么也得不到。这会在文档“准备就绪”后立即执行,从而为您提供更有用的价值。

您可能还需要将身体的宽度和高度设置为 100%,并使用该尺寸而不是窗口。

【讨论】:

  • 您可能还需要将您的身体设置为 100% 的宽度和高度,并使用该尺寸而不是窗口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 2013-08-02
  • 2010-10-27
  • 2020-02-16
相关资源
最近更新 更多