我有一個頁面,其中包含一個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