用三种方式实现轮播图
轮播图的实现原理顾名思义,轮播图就是实现图片的轮换播放效果。先显示一张图片,一定的时间,让这张图片消失,下一张图片显示。让它们实现跟淘宝首页一样的广告轮播效果。
首先是前端html代码代码语言:javascript复制
*{
margin: 0;
padding: 0;
text-decoration: none;
}
.top{
width:700px;
margin: 0 auto;
height: 500px;
border: 1px solid;
background-repeat:no-repeat;
}
img{
width: 700px;
height: 500px;
}
.inner1,.inner2,.inner3,.inner4{
position: absolute;
margin-top: 0;
display:block;
}
.ul{
width: 150px;
height: 15px;
font-size: 10px;
line-height:15px;
text-align: center;
margin: 0 auto;
}
.first{
display: inline-block;
width:15px ;
height:15px;
border: 1px solid;
background-color:lightblue;
border-radius: 50%;
margin-right: 15px;
}
.first:hover{
background-color:red;
}




- 1
- 2
- 3
- 4
图片可以设置成自己想要的图片,只需要在img src后换成自己本地的图片就行。
js代码使用display实现轮播代码语言:javascript复制
//获取img
var img = document.querySelectorAll("img");//通过选择器,获取img
var li = document.querySelectorAll("li");
var div = document.querySelectorAll('.top div');
// console.log(img);
var index = 0;//定义一个初始值为0的变量
function scrol() {
> //使用display实现
> //隐藏
> for(var i=0;i > //设置让三个隐藏,一个显示 > img[i].style.display = "none";//把所有的img隐藏 > li[i].style.backgroundColor =""; //分页颜色全都不显示 > } > img[index].style.display = "block";//让一个显示 > li[index].style.backgroundColor = "red";//一个分页显示颜色 > index++;//自增 > if(index==div.length){ > index=0; > } } var timer = setInterval(scrol,500);//设置定时器 function mOver(index){//设置鼠标移动在分页上的函数 clearInterval(timer);//清除定时器 for(var i=0;i div[i].style.zIndex ="1";//让所有图片隐藏 li[i].style.backgroundColor =""; //分页颜色失效 } div[index].style.zIndex = "9";//当前选中分页显示 } function mOut(){//鼠标移出让它继续轮播 timer = setInterval(scrol,500); } for(var i =0;i li[i].onmouseover = function(){ mOver(i); } li[i].onmouseout = function(){ mOut(i); } } 使用zIndex实现轮播zIndex我的理解就是屏幕离人的距离,就是z轴。值越大,离人的距离越近,也就是首先显示出来 代码语言:javascript复制//使用zIndex实现 > for(var i=0;i > div[i].style.zIndex ="1"; > li[i].style.backgroundColor =""; > } > div[index].style.zIndex = "9"; > li[index].style.backgroundColor = "red"; > index++; > if(index==div.length){ > index=0; > }使用透明度实现轮播透明度是0-1之间,0是透明,1是不透明,也就是显示出来 代码语言:javascript复制 //使用透明度实现 > for(var i=0;i > img[i].style.opacity="0"; > li[i].style.backgroundColor =""; > } > img[index].style.opacity = "1"; > li[index].style.backgroundColor = "red"; > index++; > if(index==img.length){ > index=0; > }总结轮播图,刚才是我做的时候首先想到的是使用for循环实现轮播图,做的过程中发现,for循环实在是太快,肉眼根本捕捉不到。就想到使用定时器,每隔多长时间调用这个函数,就能实现轮播的效果。我的总体思路就是先让其他隐藏,让一个显示,然后定时器每调用一个就能实现一个的显示其他的隐藏。