当然了,如果你想要看前面的图片,让图片先跑到当前图片的左边,然后和当前图片一起向右运动
基本结构与样式
<div class="lunbo"><div class="picture"> <ul><li><img src="img/1.jpg"></li><li><img src="img/2.jpg"></li><li><img src="img/3.jpg"></li><li><img src="img/4.jpg"></li><li><img src="img/5.jpg"></li> </ul></div><ul class="btn"> <li id="active"><div></div></li> <li><div></div></li> <li><div></div></li> <li><div></div></li> <li><div></div></li></ul><div id="left"><img src="img/left.png"></div><div id="right"><img src="img/right.png"></div> </div>
*{ margin: 0; padding: 0;}.lunbo{ width: 100%; height: 410px; position: relative; text-align: center;}.picture{ width: 1190px; height: 480px; position: absolute; top: 0; left: 88px; overflow: hidden;}.picture li{ width: 1190px; height: 410px; margin: 0 auto; list-style-type: none; margin-top: 70px; position: absolute; overflow: hidden; top: ; left: ;}.picture img{ cursor: pointer;}.btn{ display: block; width: 150px; height: 30px; position: absolute; top: 460px; left: 130px;}.btn li{ display: block; width: 10px; height: 10px; background-color:white; list-style-type: none; position: absolute; top: 0px; left: 0px; border-radius: 10px; cursor: pointer;}#active{ background-color: #03A9F4;}.btn li:hover{ background-color:#9e9e9e;}#left{ position: absolute; top: 240px; left: 90px; cursor: pointer;}#right{ position: absolute; top: 240px; left: 1220px; cursor: pointer;}然后我们用jQuery来设置初始图片的位置和小圆点的位置
function setCirPos(){// 设置圆点的位置$cir.each(function(){ $(this).css({left:$(this).index()*25 + 500 })});// 设置刚开始不显示的图片的位置$pic.slice(1).each(function(){ $(this).css({left:$picW })}) }自动轮播
var $cir = $(".btn li"); var $pic = $(".picture li"); var $picW = $pic.width(); var $oLeft = $("#left"); var $oRight = $("#right"); // 当前图片 var nowPic = 0; // 防止用户连续的点击 var canClick = true; // 定时器 var timer = null;设置nowPic是为了记录当前显示的图片,因为这个轮播图一共有三种触发图片切换的方法,所以这个变量是三个方法要共享的
// 设置定时器自动切换 timer = setInterval(function(){auto(); },2000); //自动切换function auto(){var index = nowPic + 1;if(index < 0){ index = 4;}else if(index > 4){ index = 0;}$pic.eq(index).css("left",$picW);$pic.eq(nowPic).animate({left:-$picW}, 400);$pic.eq(index).animate({left:0}, 400);nowPic = index;// 设置当前图片的圆点的样式$cir.eq(nowPic).attr("id","active").siblings().attr("id",""); }点击小圆点
function lunbo(){$cir.click(function(){ clearInterval(timer); var index = $(this).index(); if(index > nowPic){// 点击的值大于当前的值$pic.eq(index).css("left",$picW);$pic.eq(nowPic).animate({left:-$picW},400); }else if(index < nowPic){// 点击的值小于当前的值$pic.eq(index).css("left",-$picW);$pic.eq(nowPic).animate({left:$picW},400); } $pic.eq(index).animate({left:0},400,function(){timer = setInterval(function(){ auto();},3000); }); nowPic = index; // 设置当前图片的圆点的样式 $cir.eq(nowPic).attr("id","active").siblings().attr("id","");}); }点击箭头
// 点击左箭头 $oLeft.click(function(){if(canClick){ clearInterval(timer); canClick = false; var index = nowPic - 1; if(index < 0){index = 4; }else if(index > 4){index = 0; } $pic.eq(index).css("left",-$picW); $pic.eq(nowPic).animate({left:$picW}, 400); $pic.eq(index).animate({left:0}, 400,function(){canClick = true;timer = setInterval(function(){ auto();},3000); }); nowPic = index; // 设置当前图片的圆点的样式 $cir.eq(nowPic).attr("id","active").siblings().attr("id","");} })
// 点击右箭头 $oRight.click(function(){if(canClick){ clearInterval(timer); canClick = false; var index = nowPic + 1; if(index < 0){index = 4; }else if(index > 4){index = 0; } $pic.eq(index).css("left",$picW); $pic.eq(nowPic).animate({left:-$picW}, 400); $pic.eq(index).animate({left:0}, 400,function(){canClick = true;timer = setInterval(function(){ auto();},3000); }); nowPic = index; // 设置当前图片的圆点的样式 $cir.eq(nowPic).attr("id","active").siblings().attr("id","");} })总结