Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 更改html中的背景图像_Javascript_Html - Fatal编程技术网

Javascript 更改html中的背景图像

Javascript 更改html中的背景图像,javascript,html,Javascript,Html,在文件夹中我有以下图片w1.jpg,w2.jpg。。。。。。w7.jpg,现在我有了在我的html页面上显示w1.jpg的代码 <html> <body > <div style='position:absolute;z-index:0;left:0;top:0;width:100%;height:100%'> <img src='w1.jpg' style='width:99%;height:99%' alt='[]' /> </div

在文件夹中我有以下图片w1.jpg,w2.jpg。。。。。。w7.jpg,现在我有了在我的html页面上显示w1.jpg的代码

<html>
<body >
<div style='position:absolute;z-index:0;left:0;top:0;width:100%;height:100%'>
  <img src='w1.jpg' style='width:99%;height:99%' alt='[]' />
</div>

</body>
</html>


我想知道,如何编写脚本,在特定的时间间隔内将图像从w1.jpg更改为w7.jpg,正如我所知,javascript中使用了setInterval函数,但您能帮助理解我在代码中如何使用它吗?非常感谢

我认为您应该使用背景图像样式。这比在后台创建z索引div要好得多

然后通过javascript更改CSS(假设您使用jQuery选择body元素):


在不详细介绍如何改进代码(避免内联css等)的情况下,最简单的方法是给图像一个id,然后将其放在HTML页面的末尾

<div style='position:absolute;z-index:0;left:0;top:0;width:100%;height:100%'>
  <img id="change-me" src='w1.jpg' style='width:99%;height:99%' alt='[]' />
 </div>
<script>
var
    images = [ "w1.jpg", "w2.jpg", "w3.jpg" ] //the list of images
  , imgToCHange = document.getElementById( 'change-me' )
  , interval = 1000 //in ms
  ;

setInterval( function(){
  images.unshift( images.pop() );
  imgToCHange.src = images[0];
 }, interval );

</script>
</body>
</html>

变量
images=[“w1.jpg”、“w2.jpg”、“w3.jpg”]//图像列表
,imgToCHange=document.getElementById('change me')
,间隔=1000//,单位为毫秒
;
setInterval(函数(){
images.unshift(images.pop());
imgToCHange.src=图像[0];
},间隔);

您必须定义图像id

var i=2;
function change_image()
{
    if(i==8)
    {
        i=1;
    }

    var img="w"+i+'.jpg'
    document.getElementById("img1").src=img;
    i++;
    setTimeout("change_image()",5000);
}
HTML代码

<img id="img1" src="w1.png" />

调用javascript函数,它将在5秒内更改图像

<script>
change_image();
</script>

更改图像();

不惜一切代价避免相当大的内联css块。另外,我不明白为什么你的图像是99%的宽度和高度?请注意,这个问题是误导性的-这不是CSS意义上的背景图像,它只是一个普通的图像元素。由于周围的元素,它可能会显示为背景,但事实并非如此。您应该添加在jquery中完成的操作。不是独立的javascript。它使用一个名为jquery的库如果你看他的css,他没有背景图像-他在一个div中有一个图像标签。由于页面布局的原因,它可能看起来像bg图像,但它不是t@fritzfromlondon是的,没错。但是,有没有理由不使用背景图像样式?您也可以仅使用div创建
    ,但这不是您应该做的。如果在图像元素后面放置背景图像,背景将不可见(除了imgage元素透明的位,或者如果周围的div大于img)。背景图像很好,但他必须从div内部移除图像元素。可能还有其他原因让ha需要它。嗯,没错。然而,看到内联样式,我想他只是不知道背景图像。我错了吗,@dato?对不起,请再试一次。这里还有一个小问题:不,它只显示所有图片,然后停止,我需要在打开网页时继续它。现在它工作了,只有一个问题,如果我添加越来越多的图片,它会继续吗?如果你的图片名称与现有的图片名称一样,如w1.jpg w2.jpg。。然后,您可以修改javascript函数的条件,就像您添加了5个以上的图像和上面提到的名称一样,然后您将total+1放在类似(7+5=12)的条件中,如果(i==13){}
    <img id="img1" src="w1.png" />
    
    <script>
    change_image();
    </script>