2011-07-09 151 views
1

我試圖用PHP來製作DIV隨機位置。這是我的代碼。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>'; 
?> 

我的代碼可以混合div的位置。但我有兩個問題。

  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; 
} 

蘭特()是生成一個隨機整數