我有一个页面,其中包含一个div,当页面加载时必须通过JS调整大小。为了做到这一点,我给它的760px“默认宽度”,然后运行下面的代码:jQuery - 在document.ready之前运行一个函数...但不能太早
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;
}
});
但是,页面可能需要一段时间来加载作为#list
div包含大量的图片。因此,只有在所有内容完成加载后,才会扩展div以填充正确的宽度。我不能把它从$(document).ready
函数中拿出来,否则它错误地说document.body是未定义的。
有没有办法在所有内容加载之前调整#list
div的大小?
编辑
请参阅:http://www.google.com/images?q=whatever
他们已经取得了我想要做成功。该列表在页面加载时立即被正确确定大小,然后被填充。您可以通过调整窗口大小并观察元素的平滑移动来告诉他们通过JS来调整所有内容。可悲的是,谷歌的JS是不是世界上最容易阅读感叹
你可以尝试设置display:none;到#list,改变它的大小,然后通过jQuery设置display:block。我可能是错的 - 但我认为浏览器不会加载隐藏的div内的图像。 – Marko 2010-07-04 04:57:24
非常有趣的想法!我会试一试......虽然这对非JS用户来说会非常糟糕,不可撤销地隐藏#list div – Mala 2010-07-04 05:01:52