1

我为 jQuery 编写了一个小型灯箱插件(是的,有几个现成的包——不幸的是,我公司的设计师不喜欢其中任何一个)。

我有一个小问题——我正在使用 .load() 将动态 Flash 内容加载到灯箱 div 中。我将 div 附加到 DOM,将可见性预设为隐藏,并使用 .outerHeight(true) 和 .outerWidth(true) 来获取尺寸。在 Internet Explorer 中,我的高度为 61 像素(边距 + 1 像素)。

假设: contentContainer 已经附加到 body dom frag

var remote = $(document.createElement("div"));
remote.css( "margin", "30px" );     
var loadURL = $(this).attr( 'href' );

if( typeof( isImage ) == "undefined" || !isImage ){
    console.log( "Loading " + loadURL );
    contentContainer.append( remote );
    remote.load( loadURL, function(){                   
        contentContainer.css( "left", (currWindow.width/2) - (contentContainer.outerWidth(true)/2) )
            .css( "top", document.body.scrollTop + (currWindow.height/2) - (contentContainer.outerHeight(true)/2) );
        overlay.css( "visibility", "visible" );
        contentContainer.css( "visibility", "visible" );
    });
}

具有明确设置高度和宽度的基本 div 是正在加载到远程的内容。

有什么建议么?当我尝试计算高度和宽度时,我认为它有些愚蠢。虽然它适用于基本图像......

乔什

4

1 回答 1

2

尝试用 0 毫秒将回调的内容包围在 window.setTimeout 中。这将等待当前调用堆栈在执行之前展开。以我的经验,这解决了一些 IE 回调时间问题,当回调在浏览器事件触发之后执行,但在 IE 重绘窗口之前执行。

于 2009-12-14T00:42:27.033 回答