2011-05-09 56 views
3

的位置:讓我有一些這樣的代碼的浮動元素

<style> 
.box { 
    width: 100px; 
    height: 100px; 
    margin: 10px; 
    background: green; 
    border: 1px solid black; 
    float: left; 

} 

#wrapper { 
    position: relative; 
} 
</style> 


<div id="wrapper"> 
<div class="box">1</div> 
<div class="box">2</div> 
<div class="box">3</div> 
<div class="box">4</div> 
<div class="box">5</div> 
<div class="box">6</div> 
</div> 

我需要得到相對於#wrapper指定左側,每個盒子的頂部。我試圖通過jQuery.position()做到這一點,但是,我沒有得到正確的結果。繼續獲得0,0。其他人可以。我認爲這裏的問題是浮動的......如果這些絕對定位,我會正確地閱讀它們。

回答

6

這裏有一些jQuery代碼會提醒左邊的位置。這與漂浮好。

$(function() { 
    $('#wrapper div').each(function(index, item) { 
      alert($(this).position().left); 
    }); 
}); 

這裏的jsfiddle:http://jsfiddle.net/ytGYS/

+0

+1是一個很好的解決方案。 @DanielB今天正在推出:] – pixelbobby 2011-05-09 16:41:45

1

這裏是你的加價小提琴和代碼示例:http://jsfiddle.net/tBwwr/

+1

也一樣。我現在離開辦公室了,所以你必須接管:-) – DanielB 2011-05-09 16:44:04

+0

哈哈。當我全天編寫'PowerShell'來備份SQL Server數據庫時,我很擔心'唉... @。$ cya稍後:] – pixelbobby 2011-05-09 16:45:28

4

職位實際工作很好,只是確保你clearfix你#wrapper指定使其有一個高度和寬度。你遇到的問題是,所有元素都是浮動的,你的父類#wrapper會被摺疊並且沒有尺寸,所以jQuery無法弄清楚另一個元素到底有多遠。

0

+1 andrewheins答案:

你是完全正確的;如果#wrapper太小而不能顯示所有相鄰的浮動元素,則$()。offset()會給出元素之間相互位置的位置。

令人討厭的是當$()。offset()在#wrapper獲取之前被檢查是正確的寬度。例如,如果有兩個以錯誤順序執行的$(document).ready()函數。 (首先得到偏移量(),然後設置寬度)

注意:我沒有足夠的聲望投票他的答案或留下評論。

相關問題