jQuery - 在 document.ready 之前运行一个函数......但不是太早

Mal*_*ala 5 jquery timing document-ready

我有一个页面,其中包含一个 div,页面加载时必须通过 JS 调整该 div 的大小。为了做到这一点,我给它一个 760px 的“默认宽度”,然后运行以下代码:

function resizeList()
{
    var wlwidth,iwidth,nwidth;
    wlwidth = document.body.clientWidth - 200 - 60;
    iwidth = 320;
    nwidth  = Math.floor(wlwidth / iwidth) * iwidth;
    $('#list').css('width',nwidth);
}

$(document).ready(function(){
    // if we're looking at a list, do the resize-thing, now and on window resize
    if (window.location.pathname.toString().split('/')[1] == "list")
    {
        resizeList();
        window.onresize = resizeList;
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,页面可能需要一段时间才能加载,因为#listdiv 包含大量图像。因此,div 只会在所有内容加载完毕后才展开以填充正确的宽度。我不能只是把它从$(document).ready函数中取出,否则它会出错,说 document.body 是未定义的。

有没有办法#list在加载所有内容之前调整div 的大小?

编辑
请参阅:http : //www.google.com/images?q=whatever
他们已经实现了我想要成功的目标。该列表在页面加载时立即正确调整大小,然后填充。您可以通过 JS 调整窗口大小并观察元素平滑移动来判断它们的大小。可悲的是,谷歌的 JS 并不是世界上最容易阅读的sigh

Dus*_*ine 4

它是尽快运行,$(document).ready是dom渲染完成时发生的事件。

您应该在加载时添加一个加载屏幕,然后在调整大小后可能会淡出它。