2011-07-09 13 views
1

DIVランダムポジションを作るためにPHPを使用しようとしています。ここに私のコードです。PHPランダムDIV質問

<?php 
function DIV1() 
{ 
    $choose = array("left", "right"); 
    $rand_keys = array_rand($choose, 1); 
    echo "<div class=position1 style=\"float:left;width:100px;height:100px;background-color:#00f;float:".$choose[$rand_keys].";border:1px solid #000;\"></div>"; 
} 
function DIV2() 
{ 
    $choose = array("left", "right"); 
    $rand_keys = array_rand($choose, 1); 
    echo "<div class=position2 style=\"float:left;width:100px;height:200px;background-color:#f00;float:".$choose[$rand_keys].";border:1px solid #000;\"></div>"; 
} 
function DIV3() 
{ 
    $choose = array("left", "right"); 
    $rand_keys = array_rand($choose, 1); 
    echo "<div class=position3 style=\"float:left;width:200px;height:100px;background-color:#ff0;float:".$choose[$rand_keys].";border:1px solid #000;\"></div>"; 
} 

echo '<div id="display" style="width:1016px;height:1016px;background-color:#333;">'; 
    $count = Math.floor(rand()*25) +15; 
    for ($i=0; $i<$count; $i++) 
    { 
     echo DIV1(); 
     echo DIV2(); 
     echo DIV3(); 
    } 

echo '</div>'; 
?> 

私のコードでは、divsの位置を混在させることができます。しかし、私は2つの質問があります。

  1. 方法15 pieces 100*10010 pieces 100*2005 pieces 200*100のdiv混合ランダム表示を制御するには?

  2. 空白部分の制御方法は?私はディスプレイゾーンにすべてのdivを表示したい。 width:1016px;height:1016px;div#displayから外れてはいけません。

+0

ランダムな整数を生成されます* * 'のdiv#のdisplay'の外ではないんで手の込んだてもらえますか?あなたはdivをフローティングしているだけで、親の*外に*表示するべきではありません。 –

+0

@ Jason McCreary、私はそうだと思っていますが、 'chrome'では、いくつかのdivは底部のdiv#displayから外れます。 –

答えて

3
$sizes = array(); 

for ($i = 0; $i < 15; $i++) { 
    array_push($sizes, $array(100,100)); 
} 
for ($i = 0; $i < 10; $i++) { 
    array_push($sizes, $array(100,200)); 
} 
for ($i = 0; $i < 5; $i++) { 
    array_push($sizes, $array(200,100)); 
} 

for ($i = 0; $i < 30; $i++) { 
    // Use array_rand() to pick out a random entry from $sizes and echo the div 
} 

それが境界の外にされていないについて、ちょうどそれがランダムトップを取得し、考慮にdiv要素の幅と高さを取って、それらの境界内に残っています。

+0

'関数名は' array_push($ sizes、$ array(100,100); '...の行にある文字列でなければなりません" ... –

+0

ブラケットが見つかりませんでした。 – Mike

0

rand()機能を使用できます。例えば

if (rand(0,10) == 1) 
{ 
    $sizes = 200; 
} 

ランド()