搭建我们的骨架:
<!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title></title>
6 </head>
7 <body>
8
9 </body>
10 </html>
11
添加区块
<div class="banner">
2 <div class="b_main">
3 <div class="b_m_pic">
4 <ul>
5 <li>
6 <a>
7 <img src="img/1.png" width="100%" height="100%"/><!--这里的宽高是为了占满盒子-->
8 </a>
9 </li>
10 <li>
11 <a>
12 <img src="img/2.png" width="100%" height="100%"/>
13 </a>
14 </li>
15 <li>
16 <a>
17 <img src="img/3.jpg" width="100%" height="100%"/>
18 </a>
19 </li>
20 <li>
21 <a>
22 <img src="img/4.jpg" width="100%" height="100%"/>
23 </a>
24 </li>
25 <li>
26 <a>
27 <img src="img/5.png" width="100%" height="100%"/>
28 </a>
29 </li>
30 <li>
31 <a>
32 <img src="img/6.png" width="100%" height="100%"/>
33 </a>
34 </li>
35 </ul>
36 </div>
37 </div>
38 <!--小圆点-->
39 <div class="b_list">
40 <ul>
41 <li class="l_click"></li>
42 <li></li>
43 <li></li>
44 <li></li>
45 <li></li>
46 <li></li>
47 </ul>
48 </div>
49 <div class="b_btn">
50 <div class="b_left"><</div>
51 <div class="b_right">></div>
52 </div>
53 </div>
CSS样式
<style>
2 *{margin:0;padding:0}
3 ul li{list-style:none}
4 img{margin: 0}
5 </style>
6 <style>
7 .banner{position: relative;width: 1366px;height: 780px;margin: 100px auto;border: 10px solid #009999;border-radius: 15px}
8 .banner .b_main{position: relative;width: 1366px;height: 780px;}
9 .banner .b_main .b_m_pic{position: relative;width: 1366px;height: 780px;}
10 .b_main .b_m_pic li{position: absolute;width: 1366px;height: 780px;top: 0;left: 0;}/*这里给绝对定位,是为了把li叠在一起*/
11 </style>
12 <style>
13 /*小圆点的样式*/
14 .b_list ul{position:absolute;right: 40px;bottom: 30px;}/*这里的ul根据banner定位*/
15 .b_list ul li{width: 20px;height: 20px;float: left;background: #333;margin-left: 20px;border-radius: 50px;
16 border:2px solid white;}
17 .b_list ul .l_hover,.b_list ul .l_click{border:2px solid #333;background: white}
18 /*两边耳朵的样式*/
19 .b_btn div{position: absolute;width: 100px;height: 100px;background: rgba(0,0,0,0.7);font-size: 60px;color: white;text-align: center;line-height: 100px;top: 50%;margin-top: -80px;cursor: pointer;}
20 .b_btn .b_left{left:0;border-radius: 50%}/*移到左边*/
21 .b_btn .b_right{right:0;border-radius: 50%}/*移到右边*/
22 </style>
js代码
var $li = $(".b_list ul li");//获取.b_list里面的所有li,放到$li这个变量里面
2 var len = $li.length-1;
3 var _index = 0;//li的索引
4 var $img = $(".b_main .b_m_pic li");//同上
5 var $btn = $(".b_btn div");
6
7 var timer = null;
8
9 // alert(typeof timer); timer是一个对象
10
11 $li.hover(function(){
12 $(this).addClass("l_hover");//指向li添加样式
13 },function(){
14 $(this).removeClass("l_hover");//指向li删除样式
15 });
16
17 //点击事件
18 $li.click(function(){
19 _index = $(this).index();
20 //获取li的下标,改变样式
21 //$li.eq(_index).addClass("l_click").siblings().removeClass("l_click");
22 //获取图片的下标,实现淡入淡出
23 //$img.eq(_index).fadeIn().siblings().fadeOut();
24 play();
25 });
26
27 //封装函数
28 function play(){
29 //获取li的下标,改变样式
30 $li.eq(_index).addClass("l_click").siblings().removeClass("l_click");
31 //获取图片的下标,实现淡入淡出
32 $img.eq(_index).fadeIn().siblings().fadeOut();
33 }
34
35 //两边耳朵的点击事件
36 $btn.click(function(){
37 var index = $(this).index();
38 if(index) {
39 _index++;
40 if (_index > len) {
41 _index = 0;
42 }
43 play();
44 }else {
45 _index--;
46 if(_index < 0){
47 _index = len;
48 }
49 play();
50 }
51 });
52
53 //定时轮播
54 function auto(){
55 //把定时器放进timer这个对象里面
56 timer = setInterval(function(){
57 _index++;
58 if(_index > len){
59 _index = 0;
60 }
61 play();
62 },2000);
63 }
64 auto();
65
66 //当我移上d_main的时候停止轮播
67 $(".b_main").hover(function(){
68 clearInterval(timer);
69 },function(){
70 //移开重新调用播放
71 auto();
72 });
73 //当我移上两边耳朵的时候停止轮播
74 $(".b_btn div").hover(function(){
75 clearInterval(timer);
76 },function(){
77 //移开重新调用播放
78 auto();
79 });
总结:
1、图片、小圆点、两边的耳朵要使用position:absolute绝对定位,进行叠加。
注:绝对定位要根据父级元素进行定位,父级元素要加上position: relative;
2、根据索引值改变图片,达成切图
注:实现淡入淡出分别是fadeIn和fadeOut两个jq方法
siblings() 方法返回被选元素的所有同级元素。同级元素是共享相同父元素的元素。
3、定时器(实现轮播):
setInterval()是开始播放,clearInterval()是关闭,有始有终嘛~~~~~
定时器有两个参数,第一个是函数方法(可以另写一个方法,写上方法名调用,也可以直接写一个function),第二个是时间