2013-07-25 64 views
5

我試圖創建一個函數,如圖像中顯示,將在一個表中安排要點:安排陣列用JavaScript和jQuery元素

enter image description here

代碼我需要修改爲:

var rowsCount = 7; 
var heightTable = 700; 
var rowHeight = 100; 

//an array with divs with elements, every element has a top and left position 
var arrayOfDivs = [({topPosition : 99, leftPosition: 100}),({topPosition : 150, leftPosition: 400}),({topPosition : 578, leftPosition: 10})]; 

//so here create a function that will create arrays = rowCount, so here we will need 7 arrays and arrange elements from arrayOfDivs into new arrays 


function arrangeInNewArrays (rowsCont,heightTable,rowHeight) { 
    var j=0; 
    for i=0 { 
     if (arrayOfDivs.topPosition[0] > rowHeight*j < rowHeight){ 
       var array+j = array+j+arrayOfDivs[i]; 
     }else { 
       i++,j++ 
     } 
    } 

    print arrayofDivs[i]; 
} 

有什麼建議嗎?我怎麼可以按行排列的點...

請幫我做///

CODE:http://jsfiddle.net/sYq9S/9/

+0

從數組中排列點排列 –

+0

http://jsfiddle.net/sYq9S/9/ –

+0

在我回答之前有人對這個問題給予了獎勵:D這不會很快回答,我與幾個月前非常相似的東西 – pythonian29033

回答

0

我認爲你可以使用這樣的事情:

var ROW_HEIGHT = 100; //assume 100px, but you can change this 
var rowsCount = 7; 

var rows = []; 
for(var i = 0; i < rowsCount; i++) { 
    rows[i] = []; 
} 

for(var i = 0; i < arrayOfDivs.length; i++) { 
    var position = arrayOfDivs[i]; 

    //The assumption is that the table starts at position 0. If not, you will 
    //have to subtract the table's top position from topPosition 
    var rowNumber = Math.floor(position.topPosition/ROW_HEIGHT); 
    rows[rowNumber].push(position); 
} 

這將最終將div分組爲行,基於它們的topPosition。因此,任何與0 <= topPosition < 100將在row[0](第一行),任何與100 <= topPosition < 200將在row[1](第二行),依此類推。

然後,您可以重複這些並根據leftPosition來定位它們。

雖然這不一定會給你7行,因爲它取決於每個元素的topPosition。所以如果你沒有任何東西有topPosition那麼600 <= topPosition < 600那麼在第七行中就不會有任何東西了。

如果你想在每一個行leftPosition進行排序,你可以這樣做:

for(var i = 0; i < rowsCount; i++) { 
    rows[i].sort(function(a, b) { 
     return a.leftPosition - b.leftPosition; 
    }); 
} 

Here is the fiddle

+0

請在一個jsfiddle中顯示,我沒有看到這裏返回什麼函數。謝謝 –

+0

@MarkWest函數返回'rows'。 –

+0

所以這個函數將創建7個新的數組,裏面有頂行和左行[1]({topPosition:top,leftPosition:left} {etc. ...},... ... ...如何安排它之後,每個新創建的陣列行[i]在陣列內的左側位置? –