2013-05-16 41 views
1

我想構建一個8 div的響應式設計。我需要這些div具有絕對定位的內聯CSS樣式,包含左側和頂部位置。爲了保持它的響應,我不能用CSS定位它們。將對象的位置設置爲內聯樣式?

我想等到div加載,然後使用jQuery獲取這些div的位置,然後將這些信息傳遞迴它們各自的內聯樣式。

如果我使用文檔準備,它適用左:0,右:0我所有的div。如果我使用文檔加載它根本不激發代碼。

$(document).ready(function(){ 
    $("div.item").each(function(i, obj) { 
    var posfix = $(this).position(); 
    var getW = $(this).width(); 
    var getH = $(this).height(); 
    $(this).children().text("left: " + posfix.left + ", top: " + posfix.top);//test 
    $(this).children().append("height: " + getH + ", width: " + getW);//test 
    $(this).css({position: 'absolute',left:posfix.left,top:posfix.top,width:getW,height:getH});//set 
    }); 
});  

這裏jsFiddle

+0

嘗試在給每個div的唯一id的幫助下,你可以很容易地指定css,在你的情況下,每個div都有相同的類名 –

+1

你在哪裏計算新的位置?正如我所看到的div從0px開始(默認),你重新分配相同的值。 – Mangiucugna

+0

@Vaibhav Jain - 我基本上一遍又一遍地重複同一個動作, h是爲什麼即時消息使用單個類名重複,而不必爲每個單獨的ID編寫代碼。 – Rydog147

回答

0

測試代碼試試這個:

$(window).load(function() 
{ 
    //your code here 
}); 

有沒有這樣的東西作爲文檔加載。 :)

而且你可能想嘗試偏移(),它相對於文檔(現在的位置(在現在的位置返回)相對於在現在的位置返回

欲瞭解更多信息檢查了這一點 - offset

+0

如果我使用window.load,它將返回與doc.ready相同的問題。我會研究偏移量,看看它是否提供了正確的解決方案。 感謝您對文檔加載的更正。 – Rydog147

+0

您正確使用.offset()會返回所需的正確信息。然而,主要的問題仍然是將代碼應用到每個單獨的元素,就像文本腳本工作一樣。 – Rydog147

相關問題