JS实现背景图按时切换或者每次更新

Posted 博客已搬家:jimmy.blog.csdn.net

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS实现背景图按时切换或者每次更新相关的知识,希望对你有一定的参考价值。

首先要有一个添加背景图片的div

    <div  id="myDiv"></div>

css样式中添加背景tu图

body{height:100%;}

#myDiv{background-image:url("img/yellow.jpg");height:100%;}         //注意添加的背景图一定要设置具体的数值高度才会显示,而这里用100%是不可能显示的,这就需要在这个div的父类元素(在这里也就是body了)设置height:100%。然后再给它设100%。才是有效的。并且高度是全屏的。

 

js代码:

var currentImg=Math.floor(Math.random()*3);   //也就是让currentImg取得0-3之间的随机值,可以I等于,0和3,这个是用来取图片的索引下标的。

var imgArr=[‘orange.jpg‘,‘green.jpg‘,‘yellow.jpg‘];//定义一个数组来存放所有的图片

function  changeImg(){

var img=document.getElementById("myDiv");

img.style.backgroundImage="url(img/"+img[currentImg]+")"; //这里特别要注意引号的使用,因为img[curentImg]是个变量,所以用"+变量+"

}

 

最后执行这个函数就可以啦

changeImg();

 

上面就是每次打开页面或者刷新的时候会随机在三张图片中选一个。

 

如果想要每隔一段时间换一个的话,只需把js修改成:

var currentImg=0;   //这个是用来取图片的索引下标的。

 

var imgArr=[‘orange.jpg‘,‘green.jpg‘,‘yellow.jpg‘];//定义一个数组来存放所有的图片

function  changeImg(){

if(currentImg>=imgArr.length){currentImg=0}  //当图片的索引超过图片数量就从第一个开始

else{currentImg++;}   

var img=document.getElementById("myDiv");

img.style.backgroundImage="url(img/"+img[currentImg]+")"; //这里特别要注意引号的使用,因为img[curentImg]是个变量,所以用"+变量+"

}

 

后面执行时也有点不同需要用到setInterval

setInterval(changeImg,400);//每隔400ms就换一个

 

 

 

-------------------------------------

补充:

Math.random()     是(0 ,1) 
Math.random()*3   是(0,3)
Math.random()*3+1 是(1,4)
Math.floor(Math.random()*3+1) 是[1,4] 可以等于1,4  Math.floor()是向下取整

 

 

所以这里取图片的索引有两种写法:1.var currentImg=Math.floor(Math.random()*3); 然后直接就取这个currentImg

2,让他0开始加,加到和长度一样或者比长度长时就又从0开始。

以上是关于JS实现背景图按时切换或者每次更新的主要内容,如果未能解决你的问题,请参考以下文章

一个动态小导航栏(好看的,用C3)(不依赖js,点击小图切换大的背景图)

vue中改变背景图,实现点击切换效果

js实现刷新页面出现随机背景图

css 如何实现随机背景图?

vue实现刷新页面随机切换背景图适用于登陆界面

vue实现刷新页面随机切换背景图适用于登陆界面