2013-03-24 62 views
0

在我的应用程序中,我有一堆矩形。居中多个项目

enter image description here

我试图水平centerize所有屏幕上的这些矩形的。 (该中心是SCREEN_WIDTH/2)

这里是我到目前为止的代码(为您的观赏乐趣),

  for (var j=0;j<rectangles.length;j++){ 
       rectangle=rectangles[j]; 
            var margin=120; 
       var coefficent=0; 
       var center_index=Math.ceil(rectangles.length/2); 
       if (j>center_index){ 
        coefficent=1; 
       }else if (j<center_index){ 
        coefficent=-1; 
       } 


       var x=(screen.width-rectangle.width)/2+j*margin*coefficent; 
       rectangle.SetX(x); 

       } 

这个代码把一切都在中心(未凉)。

任何有关这个问题的帮助将会受到高度赞赏。

编辑:

对不起,我没有说清楚,

继承人另一个图像更清晰(行,是中线):

enter image description here

所以你可以看到,我们正在移动所有矩形,以便中间的矩形位于中心。

就像当您按下中心按钮以在Word文档中水平居中文本时,我正在尝试使用矩形执行此操作。

+0

你期望发生什么? – beaker 2013-03-24 14:56:35

+0

嗨,我更新了我的问题 – 2013-03-24 15:01:44

+0

为什么不使用CSS来居中呢? JS并不是这方面的正确工具。 – Bergi 2013-03-24 15:52:59

回答

1

不知道没有完整的代码(我会建议jsfiddle),但它似乎你使用center = width/2超过2个矩形。如果您有3个矩形,则使用绝对中心定位将不起作用。我会建议通过将宽度除以矩形数量然后将其用作每个矩形的中心点,即(未经测试的伪代码,因为我没有完整的代码),我还添加了一些不需要的变量,如currentRectHalf宽度,试图使事情更清晰):

var width=500; //fill in with your width 
    var margin=120; //margin 
    var numRectangles=rectangles.length; //from your example 
    var offset=width/numRectangles; 
    for(var i=0;i<numRectangles;i++) { 
    currentRectHalfWidth=rectangle.width/2; 
    currentCenter=(offset+1)*offset+margin-currentRectHalfWidth; //+1 because of zero index array 
    rectangle.SetX(x); 
    } 
0

看起来好像您没有设置矩形的Y值。在你的代码中的某处,你需要设置它们的Y值,以使它们不是全部在正确的中心。

+0

嗨,我刚刚更新了我的问题,我希望你能够检查出来。 – 2013-03-24 15:02:05

+0

只是为了澄清,你想要移动矩形一定距离的中心? – 2013-03-24 15:03:56

+0

就像当你按下中央按钮来居中文本时,我正在试图用矩形做到这一点。 – 2013-03-24 15:05:31