第一種輪播圖:將全部的圖片橫排着放,而後利用overflow:hidden,一次只展現一張圖片,而後定時向左移動,來實現圖片輪播。代碼以下:css
html結構和css樣式:html
1 <style>
2 .pic-box{
3 width:600px;
4 height:400px;
5 margin:100px auto;
6 overflow:hidden;
7 position:relative;
8 }
9 .pic{
10 width:3600px;
11 position:absolute;
12 left:0;
13 top:0;
14 list-style: none;
15 margin:0;
16 padding:0;
17 }
18 .pic li{
19 width:600px;
20 height:400px;
21 float:left;
22 list-style: none;
23 }
24 li img{
25 width:600px;
26 height:400px;
27 }
28 .btns{
29 position:absolute;
30 right:5%;
31 bottom:5px;
32 }
33 .btn{
34 display: inline-block;
35 width:10px;
36 height:10px;
37 border-radius: 50%;
38 border:1px solid #999999;
39 }
40 .btn:hover{
41 cursor:pointer;
42 }
43 .selected{
44 background: #009cda;
45 }
46 .pre-btn{
47 position:absolute;
48 top:50%;
49 left:10px;
50 display: inline-block;
51 width:20px;
52 height:20px;
53 margin-top:-10px;
54 background: rgba(255,255,180,0.8);
55 text-align: center;
56 }
57 .next-btn{
58 position:absolute;
59 top:50%;
60 right:10px;
61 display: inline-block;
62 width:20px;
63 height:20px;
64 margin-top:-10px;
65 background: rgba(255,255,180,0.8);
66 text-align: center;
67 }
68 .pre-btn:hover,.next-btn:hover{
69 cursor:pointer;
70 }
71 </style>
72 </head>
73 <body>
74 <div class="pic-box">
75 <ul class="pic">
76 <li><img src="img/13.jpg"></li>
77 <li><img src="img/14.jpg"></li>
78 <li><img src="img/24.jpg"></li>
79 <li><img src="img/16.jpg"></li>
80 <li><img src="img/18.jpg"></li>
81 <li><img src="img/19.jpg"></li>
82 </ul>
83 <div class="btns">
84 <span class="btn selected"></span>
85 <span class="btn"></span>
86 <span class="btn"></span>
87 <span class="btn"></span>
88 <span class="btn"></span>
89 <span class="btn"></span>
90 </div>
91 <span class="pre-btn"><img src="img/before.png"></span>
92 <span class="next-btn"><img src="img/next.png"></span>
93 </div>
js代碼:jquery
1 <script src="jquery-3.2.1.min.js"></script>
2 <script>
3 /*圖片滾動函數*/
4 var i=0;//記錄當前圖片的順序
5 var timer;//定時器變量
6 $pics=$(".pic>li"); 7 $pic=$('.pic'); 8 $pages=$pics.length; 9 $width=$pic.width()/$pages;
10 $btns=$(".btns>.btn"); 11 //定時輪播
12 function animate(){ 13 clearTimeout(timer); 14 if(!$pic.is(":animated")){ 15 if(i<$pages-1){ 16 $pic.animate({left:'-='+$width},"normal");//將圖片向左移動一張,也能夠換成其餘效果。
17 i++; 18 } 19 else{ 20 $pic.animate({left:0},"normal"); 21 i=0; 22 } 23 $btns.eq(i).addClass("selected").siblings().removeClass("selected"); 24 } 25 timer=setTimeout(animate,4000); 26 } 27 timer=setTimeout(animate,4000); 28 //點擊上一張,則播放上一張圖片
29 $(".pre-btn").click(function(){ 30 clearTimeout(timer); 31 if(!$pic.is(":animated")){ 32 if(i>0){ 33 $pic.animate({left:'+='+$width},"normal"); 34 i--; 35 } 36 else{ 37 $pic.animate({left:-$width*($pages-1)},"normal"); 38 i=$pages-1; 39 } 40 $btns.eq(i).addClass("selected").siblings().removeClass("selected"); 41 } 42 timer=setTimeout(animate,4000); 43 }); 44 //點擊下一張按鈕,則播放下一張圖片
45 $(".next-btn").click(function(){ 46 clearTimeout(timer); 47 if(!$pic.is(":animated")){ 48 if(i<$pages-1){ 49 $pic.animate({left:'-='+$width},"normal"); 50 i++; 51 } 52 else{ 53 $pic.animate({left:0},"normal"); 54 i=0; 55 } 56 $btns.eq(i).addClass("selected").siblings().removeClass("selected"); 57 } 58 timer=setTimeout(animate,4000); 59 }); 60 //點擊小圓圈時,播放小圓圈所表明的圖片
61 $btns.each(function(index){ 62 $(this).click(function(){ 63 clearTimeout(timer); 64 if(!$pic.is(":animated")){ 65 $pic.animate({left:-$width*index},"normal"); 66 i=index; 67 $(this).addClass("selected").siblings().removeClass("selected"); 68 } 69 timer=setTimeout(animate,4000); 70 }) 71
72 }) 73 </script>
第二種輪播方式是:全部圖片都堆疊在一塊兒,而後定時顯示一張圖片,隱藏其它圖片來實現輪播,js代碼以下:(html結構不變,改變css佈局,使圖片堆疊在一塊兒)函數
1 <script src="jquery-3.2.1.min.js"></script>
2 <script>
3 /*圖片滾動函數*/
4 var i=0;//記錄當前圖片的順序
5 var timer;//定時器變量
6 var pic=$(".pic"); 7 $pics=$('.pic>li'); 8 var pages=$pics.length; 9 $btns=$(".btns>.btn"); 10 //定時輪播
11 function animate(){ 12 clearTimeout(timer); 13 $pics.eq(i).fadeOut(); 14 if(i<pages-1){ 15 i++; 16 }else{ 17 i=0; 18 } 19 $pics.eq(i).fadeIn(); 20 $btns.eq(i).addClass('selected').siblings().removeClass('selected'); 21 timer=setTimeout(animate,1000); 22 } 23 timer=setTimeout(animate,1000); 24 //點擊上一張,則播放上一張圖片
25 $(".pre-btn").click(function(){ 26 clearTimeout(timer); 27 $pics.eq(i).fadeOut(); 28 if(i>0){ 29 i--; 30 }else{ 31 i=pages-1; 32 } 33 $pics.eq(i).fadeIn(); 34 $btns.eq(i).addClass('selected').siblings().removeClass('selected'); 35 timer=setTimeout(animate,1000); 36 }); 37 //點擊下一張按鈕,則播放下一張圖片
38 $(".next-btn").click(function(){ 39 clearTimeout(timer); 40 $pics.eq(i).fadeOut(); 41 if(i==pages-1){ 42 i=0; 43 }else{ 44 i++; 45 } 46 $pics.eq(i).fadeIn(); 47 $btns.eq(i).addClass('selected').siblings().removeClass('selected'); 48 timer=setTimeout(animate,1000); 49 }); 50 //點擊小圓圈時,播放小圓圈所表明的圖片
51 $btns.each(function(index){ 52 $(this).click(function(){ 53 clearTimeout(timer); 54 if(i!==index){ 55 $pics.eq(i).fadeOut(); 56 $pics.eq(index).fadeIn(); 57 $btns.eq(index).addClass('selected').siblings().removeClass('selected'); 58 } 59 i=index; 60 timer=setTimeout(animate,1000); 61 }); 62 }) 63 </script>