欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS—轮播图

程序员文章站 2022-06-02 11:48:35
...

JS—轮播图

效果图如上,代码如下:

HTML部分:

<div class="wrap">
     <div class="imgs">
          <img style="opacity:1" src="img/img2.jpg"/>
          <img src="img/img3.jpg"/>
          <img src="img/img4-1.jpg"/>
          <img src="img/img1.jpg"/>
     </div>
     <div class="lBtn"> < </div>
     <div class="rBtn"> > </div>
     <ul>
          <li>1</li>
          <li>2</li>
          <li>3</li>
          <li>4</li>
      </ul>
</div>

接下来就是CSS部分了,看起来更加美观:

*{margin:0;padding:0}
.wrap{width:590px;height:470px;margin:50px auto;position:relative}
.wrap .imgs{width:590px;height:470px;position:relative}
.wrap .imgs img{width:590px;height:470px;position:absolute;opacity:0}
.wrap .lBtn{width:50px;height:30px;line-height:30px;text-align:center;position:absolute;top:220px;left:0;background:rgba(204,204,204,0.5);cursor:pointer}
.wrap .rBtn{width:50px;height:30px;line-height:30px;text-align:center;position:absolute;top:220px;right:0;background:rgba(204,204,204,0.5);cursor:pointer}
.wrap ul{width:120px;height:30px;position:absolute;left:0;top:400px;right:0;bottom:0;margin:auto;}
.wrap ul li{height:30px;width:30px;background:#CCC;line-height:30px;text-align:center;border-radius:50%;list-style:none;float:left;color:#fff;cursor:pointer}
.wrap .on{background:#333}

最后就是效果实现的部分了,js代码如下:

//先获取DOM元素
var wrap=document.getElementsByClassName("wrap")[0] //获取大盒子
var img=wrap.getElementsByClassName("imgs")[0].getElementsByTagName("img")//获取图片
var lBtn=wrap.getElementsByClassName("lBtn")[0]//获取左按钮
var rBtn=wrap.getElementsByClassName("rBtn")[0]//获取右按钮
var li=wrap.getElementsByTagName("li")//获取li
var index=0;//下标
//初始状态,也就是第一个有样式
li[0].className="on"
//点击左右按钮以及底部按钮实现图片的切换
//左按钮
lBtn.οnclick=function(){
	if(index==0){
		index=img.length-1
	}else{
		index--
	}
	//切换
	tab()
}
//右按钮
rBtn.οnclick=function(){
	if(index>=img.length-1){
		index=0
	}else{
		index++
	}	
	//切换
	tab()	
}
//底部圆按钮
for(var i=0;i<li.length;i++){
	li[i].index=i;
	li[i].οnclick=function(){
		index=this.index
		//切换
		tab()
	}
}
//图片切换方法
//切换
function tab(){
	//所有的img隐藏,对应的显示	;所有的li不变色,对应的li变色
	for(var i=0;i<li.length;i++){
		//DomUtil.startMove(img[i],{opacity:0})
		img[i].style.display="none"
		li[i].className=""
	}
	img[index].style.display="block"
	//DomUtil.startMove(img[index],{opacity:100})
	li[index].className="on"
}

//图片自动轮播效果
var timer=setInterval(function(){
	if(index>=img.length-1){
		index=0
	}else{
		index++
	}	
	//切换
	tab()
},2000)	

//鼠标划上,停止计时,轮播图片停止
wrap.οnmοuseοver=function(){
	clearInterval(timer)
}
//鼠标划出,恢复原样
wrap.οnmοuseοut=function(){
	timer= setInterval(function(){
		if(index>=img.length-1){
			index=0
		}else{
			index++
		}	
		//切换
		tab()
	},2000)
}
setInterval(tab,2000)