簡體   English   中英

在javascript中顯示數組中的隨機圖像

[英]show random image from array in javascript

我想從imgArray中選擇隨機圖像同時打印16個不同的圖像,但無法填充imgRandom函數。

img = new imgArray(7);
img[0]='1.png';
img[1]='2.png';
img[2]='3.png';
img[3]='4.png';
img[4]='5.png';
img[5]='6.png';
img[6]='7.png';
img[7]='8.png';

var rand=imgArray[math.floor(math.random*imgArray.length)];

function imgRandom(){

}

試試這個功能

function getRandomImage(imgAr, path) {
    path = path || 'images/'; // default path here
    var num = Math.floor( Math.random() * imgAr.length );
    var img = imgAr[ num ];
    var imgStr = '<img src="' + path + img + '" alt = "">';
    document.write(imgStr); document.close();
}

調用該函數

getRandomImage(ARRAY-VARIABLE, '/images/')

參考現場演示 每次刷新都會看到圖像的變化

使用以下代碼:

var imgArray = ['1.png', '2.png', '3.png', '4.png', '5.png', '6.png', '7.png', '8.png'];
var basePath="YOUR_FOLDER_PATH_HERE";

function imgRandom() {
    for (var i = 0; i < 18; i++) {
        var rand = imgArray[Math.floor(Math.random() * imgArray.length)];
        var image = new Image();
        image.src = basePath+rand;
        document.body.appendChild(image);
    }
}

現場演示 | 資源

我想指出你的代碼中有一些東西

  • 默認情況下javascript中沒有imgArray (可能是你的構造函數)
  • 你想要一個Array

  • Javascript是case sensitiv,js中的Math對象有一個大寫字母M.

    • math - > Math
  • 並且必須調用Math對象的random屬性以返回隨機數
    • random - > random()
    • Math.random()

但對你的問題

  1. 函數接受參數,因此可以為圖像數組選擇一個參數

    function (imgArr) {...
    有了這個,您可以通過imgArr訪問傳遞的參數

  2. 函數可以返回值,所以我們可以繼續使用Math.random

    function(imgArr){return imgArr [Math.floor(Math.random()* imgArr.length)]}

  3. 你沒有“昏暗”數組,並預定義你要放入的元素,你可以做某事。 喜歡

    var imgArr = ["img01.png","img02.png",...]
    並且var arr=[]將等於var arr = new Array()

  4. 所以用你的Array調用這個函數就好像


  var img = ["1.png", "2.png", "3.png", "4.png", "5.png", "6.png", "7.png", "8.png"]
     function imgRandom(imgArr) {
        return imgArr[Math.floor(Math.random() * imgArr.length)];
    }
 console.log(imgRandom(img));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM