在我的应用中,我有一堆矩形。
我试图在屏幕上水平居中所有这些矩形。 (中心是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);
}
此代码将所有内容置于中心(不是很酷)。
对此问题的任何帮助都将非常感激。
编辑:
抱歉不清楚,
另一张图像更清晰(线条,是中心线):
所以你可以看到,我们正在移动所有的矩形,以便中间的矩形位于中心。
就像按下中心按钮在Word文档上水平居中文字一样,我试图用矩形来做这件事。
答案 0 :(得分: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);
}
答案 1 :(得分:0)
看起来好像没有设置矩形的Y值。在代码的某处,你需要设置它们的Y值,使它们不在所有的中心。