2013-07-25 47 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]在阵列内的左侧位置? –