lunbotu.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery轮播效果图 </title>
<style type="text/css">
body{ margin:0 auto; text-align:center;}
#main{ width:370px; height:240px; overflow:hidden; margin:0 auto; position:relative;}
#images{ width:100%; height:240px; overflow:hidden; position:relative;}
#images div{ display:block; width:100%; height:100%; position:absolute; top:0px; left:0px; opacity:0.3; display:none;}
#images div:nth-child(1){opacity:1; display:block;background:red}
#btn{ width:130px; height:30px; overflow:hidden; text-align:center; position:absolute; left:0px; bottom:0px;}
#btn span{ display:block; width:20px; height:20px; line-height:20px;
font-size:13px; color:#fff; float:left;margin:5px 0px auto 5px;
border-radius:50%; text-align:center;
}
#arrow{
width:100%; height:30px; overflow:hidden; position:absolute;
top:105px; left:0px;
}
#arrow div{
width:100%; height:100%; position:relative;
}
#arrow div span{ display:block; width:6px; height:30px; overflow:hidden; color:#fff;
position:absolute; top:0px; line-height:30px; text-align:center;
font-size:20px;
z-index:10;
}
</style>
<script type="text/JavaScript" src="jquery.js" ></script>
<script type="text/javascript">
$(function(){
var i=0;
var _timer=0;
function delay(){// delay()完成图片切换,span颜色切换,
$("#btn span").eq(i).css("background-color","red");//把player()中传来的当前的span背景颜色变成red;"display":"none","opacity":0.3
$("#images div").eq(i).css({
"display":"none",
"opacity":0.3
});
i++; //i++,执行下一张图片操作
if(i>=$("#images div").size()){ //如果i>当前i的长度,使i重置为0;size相当于length
i=0;
}
$("#images div").eq(i).css("display","block"); //把player()中传来的当前的span背景颜色变成#ccc;"display":"block","opacity":1
$("#btn span").eq(i).css("background-color","#ccc");
player(true);//执行完上述操作执行player(true);方法;
}
//img轮播
function player(_cmd){
$("#btn span").eq(i).css("background-color","#ccc");//把当前的span背景变成#ccc
$("#images div").eq(i).animate({
//把当前的span透明度变为1
"opacity":1,
},600,function(){
//600毫秒之后执行
if(_cmd){ //此判断。清空定时器,把_cmd传给delay;然后执行delay方法,用时2000毫秒
window.clearTimeout(_timer);
_timer=window.setTimeout(delay,2000);
}else{
$("#images div").eq(i).stop();//停止当前操作,清出定时器
window.clearTimeout(_timer);
}
});
}
player(true); //调用player方法
//鼠标划过span或者切换按钮时被调用
function eventHandle(_current){//
$("#images div").eq(i).finish();//停止当前轮播并改变当前轮播画面的样式,后面的操作也全部停止
$("#images div").css({
"display":"none",
"opacity":0.3
});
$("#btn span").css({
"background-color":"red"
});
$(_current).css({
//获取传值,修改下一个轮播的样式
"background-color":"#ccc"
});
i=$(_current).index();
$("#images div").eq(i).css({
"display":"block"
});
window.clearTimeout(_timer);
//清除定时器,停止轮播
player(false);
}
//鼠标移入移出事件,mouseenter相当于onmosouseover;mouseleave相当于onmouseout,可以防止事件冒泡
$("#main").mouseenter(function(){ //鼠标移入轮播图,停止轮播
window.clearTimeout(_timer);//清除定时器
$("#images div").eq(i).stop();//当前动画停止
});
$("#main").mouseleave(function(){
//鼠标移出轮播图,调用player(true);,重新轮播
player(true);
});
$("#btn span").mouseenter(function(){//鼠标移入当前span。调用eventHandle(),把当前span传给eventHandle()
eventHandle(this);
});
//控制查看图片上一张和下一张
$("#arrow span.left").click(function(){//点击left按钮,调用eventHandle();当前span减一并传值给eventHandle();
eventHandle($("#btn span").eq(--i)[0]);
});
$("#arrow span.right").click(function(){//点击right按钮,调用eventHandle();当前span加一并传值给eventHandle();
eventHandle($("#btn span").eq(++i)[0]);
});
});
</script>
</head>
<body>
<div id="main">
<div id="images">
<div></div>
<div></div>
</div>
<div id="btn">
<span>1</span>
<span>2</span>
</div>
</div>
</body>
</html>