激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - js+html+css實現(xiàn)手動輪播和自動輪播

js+html+css實現(xiàn)手動輪播和自動輪播

2021-12-22 16:18南柯Seven js教程

這篇文章主要為大家詳細介紹了js+html+css實現(xiàn)手動輪播和自動輪播效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js+html+css實現(xiàn)手動輪播和自動輪播的具體代碼,供大家參考,具體內(nèi)容如下

原理:設置圖片層的總長=單張圖片長度*張數(shù);在輪播層中利用overflow只留出一張圖片的顯示; 通過圖片層的left來顯示輪播的每一張圖,第一張為0,為了后面的圖片顯示,left的值左移為負數(shù)。

原理圖

js+html+css實現(xiàn)手動輪播和自動輪播

代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>輪播圖</title>
<!-- <script type="text/javascript" src="demo.js"></script> -->
</head>
<style type="text/css">
 *{
 margin: 0;
 padding: 0;
 }
 ul{
 list-style: none;
 }
 a{
    text-decoration: none;
  }
 #container{
 position: relative;
 width: 500px;
 height: 260px;
 margin: 20px auto;
 overflow: hidden; /*溢出隱藏:只顯示一張圖片*/
 }
 #container .parent{
 position: absolute;
 width: 2500px; /*整個圖片層長度:500*5=2500*/
 height: 260px;
 }
 
 #container .parent li{
 float: left;
 width: 500px;
 height: 100%;
 }
 #container .parent li img{
 width: 100%;
 height: 100%;
 }
 #container .btnLeft,
 #container .btnRight{
 width: 30px;
   height: 30px;
   background-color: #9E9E9E;
   border-radius: 20%;
   opacity: 80%;
   position: absolute; /*包含塊為圖片顯示層container*/
   top: 0;
   bottom: 0;
   margin: auto;
   font-size: 20px;
   color: #f40;
   text-align: center;
   line-height: 30px;
 }
 #container .btnLeft{
   left: 10px;
 }
 #container .btnRight{
 right: 10px;
 }
 #container .btnLeft:hover,
 #container .btnRight:hover{
 opacity: 90%;
 cursor: pointer;
 }
 /*蒙層*/
 #container .modal{
 width: 100%;
 height: 40px;
 background: rgba(0,0,0,.3);
 position: absolute;
 left: 0;
 bottom: 0;
 line-height: 40px;
 padding: 0 40px;
 box-sizing: border-box;
 }
 #container .modal .title{
 float: left;
 color: #fff;
 font-size: 12px;
 }
 #container .modal .dots{
 float: right;
 position: absolute;
 bottom: 10px;
 left: 340px;
 }
 #container .modal .dots li{
 width: 15px;
 height: 15px;
 border-radius: 50%;
 float: left;
 /*可以使用行塊盒*/
 /*display: inline-block;*/
 margin: 0 5px;
 cursor: pointer;
 }
 .clearfix::after{
 content: "";
 display: block;
 clear: both;
 }
 .on{
 background-color: red;
 }
 .off{
 background-color: gray;
 }
</style>
<body>
<div id="container">
 <ul class="parent" style="left: 0;">
 <li><img src="1.jpg"></li>
 <li><img src="2.jpg"></li>
 <li><img src="3.jpg"></li>
 <li><img src="4.jpg"></li>
 <li><img src="5.jpg"></li>
 </ul>
 
 <div class="btnLeft">&lt;</div>
 <div class="btnRight">&gt;</div>
 <div class="modal">
 <div class="title">
  <h2>輪播圖</h2>
 </div>
 <div class="dots">
  <ul class="clearfix">
  <li class="on"></li>
  <li class="off"></li>
  <li class="off"></li>
  <li class="off"></li>
  <li class="off"></li>
  </ul>
 </div>
 </div>
</div>
<script type="text/javascript">
 
var imgShow = document.getElementsByClassName('parent')[0],
 dotList = document.querySelectorAll('.dots >.clearfix > li');
var btnLeft = document.getElementsByClassName('btnLeft')[0],
  btnRight = document.getElementsByClassName('btnRight')[0];
var dotLen = dotList.length,
 index = 0; //輪播層的圖片索引,0表示第一張
 
//圓點顯示
function showRadius() {
 for(var i = 0; i < dotLen; i++) {
 if(dotList[i].className === "on"){
  dotList[i].className = "off";
 }
 }
 dotList[index].className = "on";
}
 
//向左移動
btnLeft.onclick = function() {
 index--;
  if(index < 0){ /*第1張向左時,變?yōu)榈?張*/
    index = 4;
  }
  showRadius();
 var left;
 var imgLeft = imgShow.style.left;
 if(imgLeft === "0px") { /*當是第1張時,每張圖片左移,移4張圖,位置為-(4*500)*/
 left = -2000;
 }
 else{
 left = parseInt(imgLeft) + 500; /*由于left為負數(shù),每左移一張加500*/
 }
 imgShow.style.left = left + "px";
}
 
//向右移動
btnRight.onclick = function() {
 index++;
  if(index > 4){ /*第5張向右時,變?yōu)榈?張*/
    index = 0;
  }
  showRadius();
 var right;
 var imgLeft = imgShow.style.left;
 if(imgLeft === "-2000px") { /*當是第5張時,第1張的位置為0*/
 right = 0;
 }
 else{
 right = parseInt(imgLeft) - 500; /*由于left為負數(shù),每右移一張減500*/
 }
 imgShow.style.left = right + "px";
}
 
// 自動輪播
/*var timer;
function autoPlay() {
 timer = setInterval(function() {
 var right;
 var imgLeft = imgShow.style.left;
 if(imgLeft === "-2000px") {
  right = 0;
 }
 else{
  right = parseInt(imgLeft) - 500;
 }
 imgShow.style.left = right + "px";
 } ,1000)
}
autoPlay();*/
 
for(var i = 0; i < dotLen; i++) {
  /*利用閉包傳遞索引*/
  (function(i) {
    dotList[i].onclick = function() {
     var dis = index - i; //當前位置和點擊的距離
     imgShow.style.left = (parseInt(imgShow.style.left) + dis * 500) + "px";
     index = i; //顯示當前位置的圓點
     showRadius();
   }
  })(i);
}
 
</script>
 
</body>
</html>

效果:按鈕左右滑動圖片,圖片上的小圓點也可以選擇圖片。

js+html+css實現(xiàn)手動輪播和自動輪播

js+html+css實現(xiàn)手動輪播和自動輪播

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/m0_37922443/article/details/106859787

延伸 · 閱讀

精彩推薦
  • js教程基于javascript實現(xiàn)移動端輪播圖效果

    基于javascript實現(xiàn)移動端輪播圖效果

    這篇文章主要為大家詳細介紹了基于javascript實現(xiàn)移動端輪播圖效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    A.香辣雞腿堡8972021-12-15
  • js教程微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)

    微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)

    這篇文章主要給大家介紹了關于微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者...

    BadmintonCode3472021-12-15
  • js教程微信小程序?qū)崿F(xiàn)購物車小功能

    微信小程序?qū)崿F(xiàn)購物車小功能

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)購物車小功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    小王同學Max5342021-12-22
  • js教程原生JS實現(xiàn)pc端輪播圖效果

    原生JS實現(xiàn)pc端輪播圖效果

    這篇文章主要為大家詳細介紹了原生JS實現(xiàn)pc端輪播圖效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    qq_1519846510042021-12-15
  • js教程ES5和ES6中類的區(qū)別總結(jié)

    ES5和ES6中類的區(qū)別總結(jié)

    這篇文章主要給大家介紹了ES5和ES6中類的區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    Totora612082021-12-16
  • js教程mustache.js實現(xiàn)首頁元件動態(tài)渲染的示例代碼

    mustache.js實現(xiàn)首頁元件動態(tài)渲染的示例代碼

    這篇文章主要介紹了mustache.js實現(xiàn)首頁元件動態(tài)渲染的示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可...

    code2roc4192021-12-21
  • js教程ES6字符串的擴展實例

    ES6字符串的擴展實例

    這篇文章主要介紹了ES6字符串的擴展實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小...

    知否5472021-12-16
  • js教程如何在JavaScript中正確處理變量

    如何在JavaScript中正確處理變量

    這篇文章主要介紹了如何在JavaScript中正確處理變量,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下...

    瘋狂的技術宅10672021-12-20
主站蜘蛛池模板: 亚洲一区二区免费 | 黄视频免费在线观看 | 久久国产午夜 | 日韩电影视频 | 一区二区三区日韩精品 | 高清视频一区二区 | 99亚洲伊人久久精品影院红桃 | 亚洲人成在线播放网站 | 久久成人福利 | 欧美a在线观看 | av在线免费看网站 | 97超级碰碰人国产在线观看 | 色的综合 | 国产精品成人一区二区三区吃奶 | 国产成人av在线播放 | 欧美人xx| 日本一级黄色大片 | 龙的两根好大拔不出去h | 欧美77 | 亚洲白嫩在线观看 | 日本一级黄色毛片 | 涩涩99 | 91看片在线观看视频 | 操操电影| 在线成人一区二区 | 色诱亚洲精品久久久久久 | 中文欧美日韩 | 亚洲精久 | 欧美淫视频 | 久久精品国产一区二区 | 国产精品白嫩白嫩大学美女 | 九一传媒在线观看 | www69xxxxx| 成人免费观看在线视频 | 色啪综合 | 国产精品久久久久久久四虎电影 | 久久蜜臀 | 成人精品久久久 | 男人久久天堂 | 日日艹夜夜艹 | 日本a v免费观看 |