【问题标题】:Generate a random image on page load在页面加载时生成随机图像
【发布时间】:2021-04-25 13:31:35
【问题描述】:

我正在尝试使用我网站上的 JavaScript 函数在加载时提取随机图像并将其设置为主体背景图像。

我一直在寻找并试图拼凑出一个解决方案,但没有成功。

这就是我所拥有的,

function chatimgset() {  
//declare an array
var randomImage = new Array();  
  
//insert the URL of images in array  
randomImage[0] = "image.png";  
randomImage[1] = "image 2.png";  
randomImage[2] = "image 3.png";  
randomImage[3] = "image 4.png ";  
randomImage[4] = "image 5.png";    
  
//generate a number 
var number = Math.floor(Math.random()*randomImage.length);  
  
//return the images generated by number 
return  
  document.getElementsByTagName("body")[0].setAttribute("background-image", "'"+randomImage[number]+"'");
}

我哪里做错了?

谢谢!

【问题讨论】:

    标签: javascript arrays function random onload


    【解决方案1】:

    您需要设置样式的background-image 属性,而不是background-image 属性。所以这就是你应该写的:

    function chatimgset() {
      //declare an array
      var randomImage = new Array();
    
      //insert the URL of images in array  
      randomImage[0] = "image.png";
      randomImage[1] = "image 2.png";
      randomImage[2] = "image 3.png";
      randomImage[3] = "image 4.png ";
      randomImage[4] = "image 5.png";
    
      //generate a number 
      var number = Math.floor(Math.random() * randomImage.length);
    
      //return the images generated by number 
      document.getElementsByTagName("body")[0].style.backgroundImage = `url('${randomImage[number]}')`;
    }
    

    【讨论】:

    • 这是有道理的。我改变了它,但它仍然不适合我。我正在使用 <body onload=“chatimgset()”> 我应该做一些不同的事情吗?
    • 抱歉,我忘记添加url(...) 部分了。
    【解决方案2】:

    要在 body 上设置 background image,你需要这样的东西

    document.body.style.backgroundImage = "url('img_tree.png')";

    所以试试这个

    function chatimgset() {
        //declare an array
        var randomImage = new Array();
    
        //insert the URL of images in array  
        randomImage[0] = "image.png";
        randomImage[1] = "image 2.png";
        randomImage[2] = "image 3.png";
        randomImage[3] = "image 4.png ";
        randomImage[4] = "image 5.png";
    
        //generate a number 
        var number = Math.floor(Math.random() * randomImage.length);
    
        //return the images generated by number 
        return randomImage[number];
    }
    document.body.style.backgroundImage = "url('" + chatimgset() + "')";
    

    【讨论】:

    • 好的,在我在主 HTML 文档上使用了 <script> 标记并在两者之间使用了 document.body.style.backgroundImage = "url('" + chatimgset() + "')"; 之后,这才起作用。显然尝试使用<body onload=“function()”> 是问题所在。
    猜你喜欢
    • 2017-02-20
    • 2016-05-15
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多