很多页面都需要用到界面轮播,但是用原生js相对来说比较复杂,用jQuery实现效果比较迅速,写个简单的demo
1、首先在HTML页面要放置轮播图案位置插入div,这里写了轮播图片数量为3张,所以定义了三个<li>作为轮播button
<div id= "container"> <p class="ImgList" style="background:url('/img/img1.png') center"></p> <p class="ImgList" style="background:url('img/img2.png') center"></p> <p class="ImgList" style="background:url('/img/img3.png') center"></p> <!--轮播的按扭--> <ul class="button"> <li><a class="hover" href="javascript:void(0);">●</a></li> <li><a href="javascript:void(0);">●</a></li> <li><a href="javascript:void(0);">●</a></li> </ul> </div>
2、为div设置相应的样式
.ImgList { width: 100%; height: 420px; position: absolute;/*绝对定位*/ left: 0px; top: 0px; z-index: -1;/*z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。*/ } .button { height: 20px; position: absolute; right:50%; bottom: 20px; z-index: 3; display: inline-block; /*行内块级元素*/ } .button li { list-style-type: none; width:20px; height:10px; float: left; margin: 0px 5px; } .button li a{ text-decoration: none; font-size: 30px; color: #787c82;/*未选中状态颜色*/ } .button li .hover{ color:white;/*设置选中状态为白色*/ }
3、在界面引入jQuery文件(如:jquery-1.7.2.min.js),(注意:文件放在自己的js文件之前)
4、新建js文件,js代码实现轮播效果
1 var _index=0; 2 var timePlay=null; 3 $("#container .ImgList").eq(0).show().siblings("div").hide();//只显示第一张 4 5 $("ul.button li").click(function(){ 6 clearInterval(timePlay); 7 _index=$(this).index(); 8 $("ul.button li .hover").removeClass('hover'); 9 $(this).find('a').addClass("hover"); 10 $("#container .ImgList").eq(_index).fadeIn().siblings("p").fadeOut();//淡出 11 autoPlay(); 12 }); 13 14 //自动轮播 15 function autoPlay(){ 16 timePlay=setInterval(function(){ 17 _index++; 18 if(_index<3){ 19 if(_index==2){_index=-1; } 20 $("ul.button li .hover").removeClass('hover'); 21 $("ul.button li").eq(_index).find('a').addClass("hover"); 22 23 $("#container .ImgList").eq(_index).fadeIn().siblings("p").fadeOut(); 24 }else{_index=-1;} 25 },2000); 26 }; 27 autoPlay();//调用和执行
5、实现效果:
图片自动轮播,间隔时间为2000毫秒,点击相应●时,切换相应图片。