前提・実現したいこと
web初心者のため、伝わらなかったら申し訳ないのですが、
500近くある画像をphpでランダムに50個抽出し、且つ配置をランダムにしたいです。
該当のソースコード
php
1<?php 2 echo '<div class="test"><div class="test2">'; 3 $name = array( 4 '1', 5 '2', 6 '3', 7 ・ 8 ・ 9 ・ 10 '500' 11 ); 12 $check = array_fill(0,500,0); 13 $a = 0; 14 while($a < 50){ 15 $i = rand(0,499); 16 if( $check[$i] != 1 ){ 17 $check[$i] = 1; 18 echo '<img src="test/'. $name[$i] .'.png">'; 19 $a++; 20 } 21 } 22 echo '</div></div>'; 23 ?>
css
1.test{ 2 position: relative; 3 width: 100vw; 4 height: 100vh; 5} 6.test2 img{ 7 position: absolute; 8}
↓https://teratail.com/questions/27367 こちらのものをコピペさせて頂きました。
javascript
1// 引数で渡した範囲内のランダムな整数を生成するための関数 2var getRandomInt = function(min, max) { 3 return Math.floor(Math.random() * (max - min + 1)) + min; 4}; 5 6// 要素の取得 7var $container = $('.test'), 8 $wordList = $('.test2').find('img'), 9 containerWidth = $container.width(), 10 containerHeight = $container.height(); 11 12console.log(containerWidth, containerHeight) 13 14// liそれぞれをランダムに配置 15$.map($wordList, function(item, index) { 16 var $item = $(item), 17 topPos = getRandomInt(0, containerHeight), 18 leftPos = getRandomInt(0, containerWidth); 19 20 // 取得したランダム座標を設定 21 $item.css({ 22 top: topPos, 23 left: leftPos 24 }); 25}); 26
以上のコードで、ランダムに抽出、配置はできるのですが、
画像が思いっきり重なって表示されてしまいます。
画像の数が今後増える可能性もあり全て読み込むのは避けたいためランダム抽出自体はphpで行いたいです。
画像が重ならないように(重なっても数px程度に)変更できれば理想で、
ランダムに配置する際、画像の向きもランダムにすることが可能でしたら、方法やヒントを教えて頂きたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー