【问题标题】:Trying to load a random link out of array尝试从数组中加载随机链接
【发布时间】:2021-04-30 03:28:57
【问题描述】:

我知道这是一个非常菜鸟的问题,查阅了几个例子,但我是一个初学者,我在代码中实现它时遇到了麻烦。

我认为标题非常明确,我希望循环以随机项目开始,并继续从数组中挑选随机项目。

var bgImageArray = [
"link1" , "link2" , "link3"
]

base = "https://lh3.googleusercontent.com/pw/";
bgImageArray.forEach(function(img){
    new Image().src = base + img; 
});

function backgroundSequence() {
  window.clearTimeout();
  var k = 0;
  for (i = 0; i < bgImageArray.length; i++) {
    setTimeout(function(){ 
      document.getElementById('animated-bg').style.background = "url(" + base + bgImageArray[k] + ") no-repeat center center";
    if ((k + 1) === bgImageArray.length) { setTimeout(function() { backgroundSequence() }, (60000 / tempo.value))} else { k++; }      
    }, (60000 / tempo.value) * i) 
  }
}
``

【问题讨论】:

标签: javascript arrays dom arraylist random


【解决方案1】:

使用此代码从数组中选择随机元素

var bgImageArray = ["link1", "link2", "link3"];

const random = Math.floor(Math.random() * bgImageArray.length);
console.log(random, bgImageArray[random]);

【讨论】:

    【解决方案2】:

    这样可能更好

    更新:错过了随机部分

    let bgImageArray = ["link1", "link2", "link3"];
    const base = "https://lh3.googleusercontent.com/pw/";
    bgImageArray = bgImageArray.map(img => new Image().src = base + img);
    
    function backgroundSequence() {
      const rndImageSrc = bgImageArray[Math.floor(Math.random()*bgImageArray.length)].src;
      document.getElementById('animated-bg').style.background = "url(" + rndImageSrc + ") no-repeat center center";
    }
    let tId = setInteval(backgroundSequence,tempo*1000);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 2020-10-23
      • 1970-01-01
      • 2021-04-13
      • 2017-07-13
      • 2019-04-19
      相关资源
      最近更新 更多