直接上图:
代码如下:
轮播图效果
*{
margin:0;
padding:0;
}
#banner{
width:400px;
height: 376px;
margin:50px auto;
position: relative;
}
.imgList{
list-style: none;
}
.imgList li{
position: absolute;
left:0;
top:0;
}
.leftBtn,.rightBtn{
width:41px;
line-height: 69px;
position: absolute;
text-align: center;
top:119px;
z-index:3;
}
.leftBtn{
left:0;
}
.rightBtn{
right:0;
}
.leftBtn:hover,.rightBtn:hover{
background-color:rgba(0, 0, 0, 0.2);
}
/* 小白点 */
.focusList{
position: absolute;
bottom: 95px;
right:150px;
z-index:2;/*层级调高*/
}
.focusList a{
float: left;
width:10px;
height: 10px;
border-radius: 50%;
margin-left:10px;
background: rgba(0, 0, 0, .4);
}
.focusList a.cur{
background: rgba(255, 255, 255, .6);
}
;
;
/*
1.每隔一段时间切换一张图片(自动)
2.点击左右按钮切换图片(点左上一张,点右下一张)
3.点击焦点切换到焦点的索引对应的那一张图片
4.鼠标移入图片区域暂停自动播放,鼠标移出继续播放
*/
//封装一个方法,调用这个方法
//切换图片
function changeImg(a){//实参代表图片索引的一个数字
$('.imgList li').eq(a).fadeIn().siblings().fadeOut();//淡入显示,其它隐藏
$('.focusList a').eq(a).addClass('cur').siblings().removeClass('cur');//添加class,其它删除
}
//自动播放按顺序执行
var step=0;//用全局变量做一个声明 每隔2s做一个调用
changeImg(step);//页面刚进入默认第一张显示
var timer=null;//定义为全局定时器,其它的方法就可以访问到这个定时器
function autoPlay(){
//定义一个变量接收定时器
timer= setInterval(function(){
step++;
if(step===5){
step =0;//从第一张开始轮播
}
changeImg(step);
},2000);
}
autoPlay();
//点击左按钮切换
$('.leftBtn').click(function(){
clearInterval(timer);//清除定时器
step--;//每点击一下就减减
if(step===-1){
step=4;//当减到最后一张时,让图片从最后一张开始
}
changeImg(step);//图片跟着变化
autoPlay();//当不点击按钮的时候,在继续执行定时器
})
//点击右按钮切换
$('.rightBtn').click(function(){
clearInterval(timer);//清除定时器
step++;//每点击一下就减减
if(step===5){
step=0;//当加到最后一张时,让图片从第一张开始
}
changeImg(step);//图片跟着变化
autoPlay();//当不点击按钮的时候,在继续执行定时器
})
//点击焦点切换
$('.focusList a').click(function(){
clearInterval(timer);//先清除定时器
step=$(this).index();//赋值给当前索引
changeImg(step);//执行step图片
autoPlay();//不点击的时候在执行定时器
})
//鼠标移入图片区域暂停自动播放,鼠标移出继续播放
$('.imgList').mouseover(function(){//mouseiver鼠标移入
console.log($('.imgList'));
clearInterval(timer);//先清除定时器
}).mouseout(function(){//mouseiver鼠标移出
autoPlay();//继续执行定时器
})
总结:如果不想要箭头的切换效果,可以去掉左边和右边的按钮事件,就可以实现效果。 :想要在移动端运行的可以自己改变css样式,把px转变成rem或者百分比
下一篇文章:实现自动轮播图片和手指触屏切换图片效果;
|