Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在页面加载时切换后台_Javascript_Css_Image_Background - Fatal编程技术网

使用javascript在页面加载时切换后台

使用javascript在页面加载时切换后台,javascript,css,image,background,Javascript,Css,Image,Background,我有一个完成工作的Bootstrap4网站,这是一个图像库。它很好用。然而,从来没有一个离开好,我想随机改变jumbotron图像时,主页上加载了6个图像之一的目的 我使用的javascript不适用于jumbotron。为了解决这个问题,我创建了一个没有cdn或jquery链接的简单html页面。只需纯html和css,并带有页面内脚本标记 我可以轻松地切换图像标签中的普通“ol”图像文件。这很有效。但是在CSS中设置了背景的分区div中切换背景图像是不起作用的 我尝试过DOM开关的各种变体,

我有一个完成工作的Bootstrap4网站,这是一个图像库。它很好用。然而,从来没有一个离开好,我想随机改变jumbotron图像时,主页上加载了6个图像之一的目的

我使用的javascript不适用于jumbotron。为了解决这个问题,我创建了一个没有cdn或jquery链接的简单html页面。只需纯html和css,并带有页面内脚本标记

我可以轻松地切换图像标签中的普通“ol”图像文件。这很有效。但是在CSS中设置了背景的分区div中切换背景图像是不起作用的

我尝试过DOM开关的各种变体,但都不起作用

我有3个问题:

1/有人能告诉我javascript(不是jQuery)语法是什么吗

CSS规定了一个带有URL的背景,而不是背景图像或背景图像,而不是像img标记那样的src。因此,我假设javascript将使用=url(图像的路径)

但我可能错了,或者我可能缺少一组括号或其他东西

由于CSS使用相对路径,我假设javascript也会这样做。添加到根文件夹似乎并没有完成任何事情,但这可能是导致问题的DOM开关语法的其余部分

2/我在body标记中使用onLoad来调用javascript。这是最佳实践,还是应该在javascript文件中使用事件侦听器来查找已完成的页面加载

3/是否有更好的方法实现图像切换?我不是在寻找任何花哨的东西,只是想确保我使用的是一个通用的过程

我的html,包括所有CSS和javascript,如下所示:

 <!DOCTYPE html>
 <html>
 <head>
 <style>
#header {
    background: url("images/header02.jpg") center center no-repeat;
    width: 100%;
    height: 400px;
}
 </style>
 </head>

 <body onLoad="myHeaderFunction()">

<img id="myImg" src="images/header05.jpg" width="900" height="200" alt="test image">

<section id="header"> </section>

<script>
    function myHeaderFunction() {
        var myImageArray = ["header01.jpg", "header02.jpg", "header03.jpg", "header04.jpg", "header05.jpg"];
        var item = myImageArray[Math.floor(Math.random()*myImageArray.length)];
        var myPath = "images/" + item;
        document.getElementById("myImg").src = myPath;
        document.getElementById("header").style.background = myPath;
    }
</script>

 </body>
  </html>

#标题{
背景:url(“images/header02.jpg”)中心不重复;
宽度:100%;
高度:400px;
}
函数myHeaderFunction(){
var myImageArray=[“header01.jpg”、“header02.jpg”、“header03.jpg”、“header04.jpg”、“header05.jpg”];
var item=myImageArray[Math.floor(Math.random()*myImageArray.length)];
var myPath=“images/”+项目;
document.getElementById(“myImg”).src=myPath;
document.getElementById(“header”).style.background=myPath;
}
应该是

document.getElementById("header").style.background = "url('" + myPath +"')";
应该是

document.getElementById("header").style.background = "url('" + myPath +"')";

您必须以适当的格式设置背景图像:

document.getElementById("header").style.backgroundImage = "url('" + path + "')";

检查此链接:

您必须以正确的格式设置背景图像:

document.getElementById("header").style.backgroundImage = "url('" + path + "')";

检查此链接:

有效。也要感谢代码963。看,这就是前端和后端一样困难的原因。不客气。请接受我的答案:)选择一个你认为是解决你问题的最佳答案。若要将答案标记为已接受,请单击答案旁边的复选标记,将其从灰色变为已填写。这样做有效。也要感谢代码963。看,这就是前端和后端一样困难的原因。不客气。请接受我的答案:)选择一个你认为是解决你问题的最佳答案。要将答案标记为已接受,请单击答案旁边的复选标记,将其从灰显切换为已填写。