0

私のアプリには、たくさんの長方形があります。

ここに画像の説明を入力してください

これらすべての長方形を画面上で水平方向に中央揃えしようとしています。(中央は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文書の水平方向に中央揃えするときのように、私はこれを長方形で行おうとしています。

4

2 に答える 2

1

完全なコードがないとわかりませんが(jsfiddleをお勧めします)、2つ以上の長方形にcenter = width/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);
  }
于 2013-03-24T15:23:16.727 に答える
0

長方形のY値を設定していないように見えます。コードのどこかでY値を設定して、すべてが正確な中心にないようにする必要があります。

于 2013-03-24T14:56:39.177 に答える