jQ传统轮播图 - 火车法 -

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
*{
padding:0;
margin:0;
list-style: none;
text-decoration: none;
}
.carousel{
width: 560px;
height: 300px;
margin:50px auto;
position: relative;
overflow: hidden;
}
.carousel .unit{
width: 9999px;
height:300px;
position: absolute;
left:0px;
top:0;
}
.carousel .unit li{
float: left;
width: 560px;
height: 300px;
}
.carousel .btns a{
width: 30px;
height: 70px;
position: absolute;
top:50%;
margin-top: -30px;
color:#fff;
background-color: rgba(0,0,0,1);
text-align: center;
}
.carousel .btns a.leftBtn{
left:10px;
}
.carousel .btns a.rightBtn{
right:10px;
}
.carousel .circles{
width: 90px;
height:20px;
position: absolute;
left:50%;
margin-left: -45px;
bottom: 30px;
}
.carousel .circles ol li{
float: left;
width: 20px;
height: 20px;
margin: 0px 5px;
background-color: orange;
}
.carousel .circles ol li.cur{
background-color: red;
}
</style>
</head>
<body>
<div class="carousel" id="carousel">
<ul class="unit" id="unit">
<li><a href="javascript:void(0);"><img src="http://iph.href.lu/560x300?text=slider_01" alt=""></a></li>
<li><a href="javascript:void(0);"><img src="http://iph.href.lu/560x300?text=slider_02" alt=""></a></li>
<li><a href="javascript:void(0);"><img src="http://iph.href.lu/560x300?text=slider_03" alt=""></a></li>
</ul>
<div class="btns">
<a href="javascript:void(0);" class="leftBtn" id="leftBtn">上一页</a>
<a href="javascript:void(0);" class="rightBtn" id="rightBtn">下一页</a>
</div>
<div class="circles" id="circles">
<ol>
<li class="cur"></li>
<li></li>
<li></li>
</ol>
</div>
</div>
<script type="text/javascript" src ="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<script type="text/javascript">
var $unit = $("#carousel #unit");
var $carousel = $("#carousel");
var $leftBtn = $("#leftBtn");
var $rightBtn = $("#rightBtn");
var $circles = $("#circles ol li");
var amount = $circles.length;
var idx = 0;
$unit.children("li:first").clone().appendTo($unit);
var timer = setInterval(rightFun, 2000);
$carousel.mouseenter(function(){
clearInterval(timer);
});
$carousel.mouseleave(function(){
clearInterval(timer);
timer = setInterval(rightFun, 2000);
});
$rightBtn.click(rightFun);
function rightFun(){
if($unit.is(":animated")){
return;
}
idx ++;
$unit.animate({"left": -560 * idx},400,function(){
if(idx > amount - 1){
idx = 0;
$unit.css("left",0);
}
});
var i = idx <= amount - 1 ? idx : 0;
$circles.eq(i).addClass("cur").siblings().removeClass("cur");
}
$leftBtn.click(function(){
if($unit.is(":animated")){
return;
}
idx --;
if(idx < 0){
idx = amount - 1;
$unit.css("left",-560 * amount);
}
$unit.animate({"left" : -560 * idx},500);
$circles.eq(idx).addClass("cur").siblings().removeClass("cur");
});
$circles.mouseenter(function(){
idx = $(this).index();
$unit.stop(true).animate({"left" : - 560 * idx},500);
$(this).addClass("cur").siblings().removeClass("cur");
});
</script>
</body>
</html>