• ベストアンサー

背景画像のランダム表示

お世話になります。 PHP勉強中です。 1.背景画像のランダム表示:bodyタグ内でなくdiv内の背景画像を変更したい。bottom right指定等施したいのでスタイルシートで書き出す?? 2.確率を設定したい:1枚の基本画像が60%表示され、それ以外の複数の画像が40%で選択、その中で画像をランダムに設定したい。 3.使用する画像は同一フォルダ内にある、背景画像以外はいれない。今後枚数を増やしていく予定なので、ファイル名を1つずつ指定するのではなく、フォルダ内の画像を読んで、配列に・・・ と、やりたいことはあるのですが、どうやったらいいのやら・・・頭が混乱してます(汗) 私のサイトに訪問される方でjsをOFFにされている方が多少いらっしゃるので、どうせならPHPで!と意気込んでみたのですが・・・ もしよろしかったらご教授下さいませ。 よろしくお願い致します。 参考:現在設置のjsファイル <script> wall = new Array(); wall[0] = "./image/bg01.jpg"; wall[1] = "./image/bg02.jpg"; wall[2] = "./image/bg03.jpg"; wall[3] = "./image/bg04.jpg"; wall[4] = "./image/bg05.jpg"; wall[5] = "./image/bg06.jpg"; wall[6] = "./image/bg07.jpg"; wall[7] = "./image/bg08.jpg"; rnd = Math.round(Math.random() * (wall.length - 1)); document.write('<style type="text/css">div.mainTOP { background:url(' , wall[rnd] , ') no-repeat bottom right #FAFAFA; }</style>'); </script>

質問者が選んだベストアンサー

  • ベストアンサー
  • tao_0077
  • ベストアンサー率48% (33/68)
回答No.2

配列から指定数の要素をランダムで抜き出す array_rand という、そのものずばりなものもあります。 './image/bg04.jpg' , $walls = array( './image/bg01.jpg' ,'./image/bg02.jpg' ,'./image/bg03.jpg' ); $wall = array_rand( $walls ) ;

その他の回答 (1)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

$walls = array( './image/bg02.jpg' ,'./image/bg03.jpg' ,'./image/bg04.jpg' ,'./image/bg05.jpg' ,'./image/bg06.jpg' ,'./image/bg07.jpg' ,'./image/bg08.jpg' ); if (rand(1, 10) < 7) { $wall = "./image/bg01.jpg"; } else { $wall = $walls[rand(0,count($walls))]; } 動作確認をしてないので動かないかもしれません。

関連するQ&A