WCschool官方 2017-02-17
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JQ 最少代码实现带数字和箭头的焦点图</title>
<link rel="stylesheet" href="base.css" />
<script type="text/javascript" src="jquery-1.10.1.min.js" ></script>
<style type="text/css">
.t-banner {
position: relative;
width: 500px;
height: 350px;
margin: 40px auto;
}
.m-banner {
float: left;
position: absolute;
overflow: hidden;
width: 500px;
height: 350px;
}
.ui-banner {
position: absolute;
overflow: hidden;
width: 2000px;
}
.ui-banner img {
float: left;
width: 500px;
height: 350px;
}
.ui-number {
position: absolute;
bottom: 15px;
left: 210px;
width: 200px;
}
.ui-number li {
float: left;
width: 20px;
height: 20px;
line-height: 20px;
text-align: center;
margin-right: 5px;
border: 1px solid #ddd;
border-radius: 5px;
font-size: 14px;
background: #fff;
cursor: pointer;
}
.ui-number li.lb-number-current {
background: #f60;
color: #fff;
}
.ui-arrows {
color: #666;
font-size: 40px;
font-weight: bold;
}
.ui-arrows a {
background: rgba(0,0,0,0.2);
display: inline-block;
width: 30px;
height: 70px;
text-align: center;
color: #fff;
line-height: 70px;
}
.ui-arrows a:hover {
background: rgba(0,0,0,0.5);
color: #fff;
}
.lb-arrows-pre {
position: absolute;
top: 120px;
left: 0;
}
.lb-arrows-next {
position: absolute;
top: 120px;
right: 0;
}
</style>
</head>
<body>
<div class="t-banner">
<div class="m-banner">
<ul class="ui-banner">
<li><img src="img/aaa.png"/></li>
<li><img src="img/bbb.png"/></li>
<li><img src="img/ccc.png"/></li>
<li><img src="img/ddd.png"/></li>
</ul>
<p class="ui-arrows">
<a class="lb-arrows-pre"><</a>
<a class="lb-arrows-next">></a>
</p>
<ol class="ui-number">
<li class="lb-number-current">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ol>
</div>
</div>
<script>
$(function(){
//焦点图
focusMap();
});
function focusMap(){
var now = 0;
var banner = $(".ui-banner");
var num = $(".ui-number li");
var wid = $(".m-banner").eq(0).width();
//数字对应着图片
num.click(function(){
var index = $(this).index();
$(this).addClass("lb-number-current").siblings().removeClass();
banner.animate({'left': -wid * index}, 500);
})
//左右箭头轮播
$(".lb-arrows-pre").click(function(){
now>=1 ? now-- : now=num.size()-1;
ani();
});
$(".lb-arrows-next").click(function(){
now==num.size()-1 ? now = 0 : now++;
ani();
});
//动画效果
function ani(){
num.eq(now).addClass("lb-number-current").siblings().removeClass();
banner.animate({'left': -wid * now}, 500);
}
//定时器
var isInterval=setInterval(getIndex,2000);
function getIndex(){
now == num.size()-1 ? now = 0 : now++;
ani();
}
//鼠标停留在画面时停止自动动画,离开恢复
$(".m-banner").mouseover(function(){
clearTimeout(isInterval);
});
$(".m-banner").mouseout(function(){
isInterval=setInterval(getIndex,2000);
});
}
</script>
</body>
</html>
效果图: