0

このスクリプトで、1つだけでなく、すべての画像を挿入するにはどうすればよいですか?すべての画像をランダムに挿入したいだけです。

<script type="text/javascript">
    var images = ['basketball.jpg', 'running.jpg', 'tennis.jpg', 'running-woman.jpg', 'swimming.jpg', 'cycling.jpg'];
$('<img src="images/large/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#images');
</script>
4

5 に答える 5

4

挿入順序をランダムに保つには、whileループを使用します。

<script type="text/javascript">
    var images = ['basketball.jpg', 'running.jpg', 'tennis.jpg', 'running-woman.jpg', 'swimming.jpg', 'cycling.jpg'];

    while (images.length !== 0) {
        var index = Math.floor(Math.random() * images.length);
        $('<img src="images/large/' + images.splice(index, 1) + '">').appendTo('#images');
    }
</script>
于 2013-03-18T09:13:24.397 に答える
1

すべての画像を追加するには、ループを使用する必要があります。

<script type="text/javascript">
    var images = ['basketball.jpg', 'running.jpg', 'tennis.jpg', 'running-woman.jpg', 'swimming.jpg', 'cycling.jpg'];

    $.each(images,function(i,v){
     $('<img src="images/large/' + images[i] + '">').appendTo('#images');
    });
</script>
于 2013-03-18T09:10:40.877 に答える
0
<script type="text/javascript">
    var images = ['basketball.jpg', 'running.jpg', 'tennis.jpg', 'running-woman.jpg', 'swimming.jpg', 'cycling.jpg'];

   for(var i=0;i<images.length;i++)
     $('<img src="images/large/' + images[i] + '">').appendTo('#images');

</script>
于 2013-03-18T09:11:41.543 に答える
0

コードで画像を選択して表示します。これを複数回実行するように、リファクタリングする必要があります。

まず、操作を分割します。

    var images = ... // fill array

    pick = Math.floor(Math.random() * images.length); // choose image

    tag = '<img src="images/large/' + images[pick] + '>'; // make tag

    $(tag).appendTo('#images'); // add tag

次に、ループに設定して、アレイが使い果たされるまで繰り返します。

    var images = ... // fill array

    while (images.length>0) {
       pick = Math.floor(Math.random() * images.length); // choose image
       tag = '<img src="images/large/' + images[pick] + '>'; // make tag
       images = images.splice(i,1); // take picked image out of array
       $(tag).appendTo('#images'); // add tag
    }

私はこれを実行していません。「スプライス」に使用する配列インデックスが正しいことを確認して、1つの画像を取り出し、配列から正しい画像を取り出します。http://ejohn.org/blog/javascript-array-remove/などから配列削除関数を取得することもできます。

于 2013-03-18T09:28:52.250 に答える
0

フィッシャーイェーツシャッフルアルゴリズムを使用して、JavaScriptで画像をシャッフルできます

画像のコレクションを配列に格納できます。次のコードに示すように、配列を関数に渡してシャッフルを作成できます:)

def fisherYatesShuffle(array):
if len(array) < 2:
    return

firstElementIndex = uniform(0, len(array))
swap(array[0], array[firstElementIndex])
fisherYatesShuffle(array[1:])
于 2013-07-22T11:54:00.453 に答える