练习6_轮播图.html 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <style>
  8. /* css reset */
  9. body {
  10. margin: 0;
  11. }
  12. li {
  13. list-style: none;
  14. }
  15. ul {
  16. margin: 0;
  17. padding: 0;
  18. }
  19. html {
  20. background-color: black;
  21. }
  22. /* 工具类 */
  23. .clearfix::after {
  24. content: "";
  25. display: block;
  26. clear: both;
  27. }
  28. .container {
  29. width: 600px;
  30. height: 200px;
  31. border: 4px solid #fff;
  32. margin: 100px auto;
  33. position: relative;
  34. }
  35. .container .swiper-img img {
  36. width: 600px;
  37. height: 200px;
  38. display: none;
  39. }
  40. .container .swiper-img .active {
  41. display: block;
  42. }
  43. /* 按钮区域 */
  44. .container .swiper-btn {
  45. position: absolute;
  46. bottom: 10px;
  47. left: 0;
  48. width: calc(100% - 40px);
  49. padding: 0 20px;
  50. }
  51. .container .swiper-btn li {
  52. color: #fff;
  53. display: inline-block;
  54. width: 20px;
  55. height: 20px;
  56. border-radius: 10px;
  57. background-color: #f90;
  58. text-align: center;
  59. line-height: 20px;
  60. margin: 0 3px;
  61. }
  62. .container .swiper-btn .left-btn {
  63. float: left;
  64. }
  65. .container .swiper-btn .right-btn {
  66. float: right;
  67. }
  68. .container .right-btn .active {
  69. background-color: red;
  70. }
  71. </style>
  72. </head>
  73. <body>
  74. <div class="container">
  75. <div class="swiper-img">
  76. <img class="s-img active" src="./image/image.png" alt="图片">
  77. <img class="s-img" src="./image/image1.png" alt="图片">
  78. <img class="s-img" src="./image/image2.png" alt="图片">
  79. <img class="s-img" src="./image/image3.png" alt="图片">
  80. <img class="s-img" src="./image/image4.png" alt="图片">
  81. </div>
  82. <div class="swiper-btn clearfix">
  83. <div class="left-btn">
  84. <ul>
  85. <li class="arr-btn">&lt;</li>
  86. <li class="arr-btn">&gt;</li>
  87. </ul>
  88. </div>
  89. <div class="right-btn">
  90. <ul>
  91. <li class="num-btn active">1</li>
  92. <li class="num-btn">2</li>
  93. <li class="num-btn">3</li>
  94. <li class="num-btn">4</li>
  95. <li class="num-btn">5</li>
  96. </ul>
  97. </div>
  98. </div>
  99. </div>
  100. <script>
  101. // 获取所有轮播的图片
  102. var aImg = document.getElementsByClassName("s-img");
  103. // 获取所有数字按钮
  104. var aNumBtn = document.getElementsByClassName("num-btn");
  105. // 获取左右按钮
  106. var leftBtn = document.getElementsByClassName("arr-btn")[0];
  107. var rightBtn = document.getElementsByClassName("arr-btn")[1];
  108. // 定义全局变量放置当前索引值
  109. var nowIndex = 0;
  110. // 定义切换轮播图函数
  111. function changeSwiper(index) {
  112. // 清除状态
  113. for (var i = 0; i < aNumBtn.length; i++) {
  114. // 清除所有数字按钮的选中状态
  115. aNumBtn[i].classList.remove("active");
  116. // 清除所有轮播图片的选中状态
  117. aImg[i].classList.remove("active");
  118. }
  119. // 给当前选中的数字按钮加上选中状态
  120. aNumBtn[index].classList.add("active");
  121. // 给当前选中的轮播图片加上选中状态
  122. aImg[index].classList.add("active");
  123. // 更新当前索引值
  124. nowIndex = index;
  125. }
  126. // 给数字按钮绑定事件
  127. for (var i = 0; i < aNumBtn.length; i++) {
  128. // 给每个数字按钮绑定一个索引值
  129. aNumBtn[i].index = i;
  130. aNumBtn[i].onmouseover = function () {
  131. changeSwiper(this.index);
  132. }
  133. }
  134. // 绑定向右按钮事件
  135. rightBtn.onclick = function () {
  136. // 判断数字是否是最后一个 如果是的从第一个开始
  137. if(nowIndex == 4){
  138. changeSwiper(0);
  139. }else{
  140. changeSwiper(nowIndex + 1);
  141. }
  142. }
  143. // 绑定向左按钮事件
  144. leftBtn.onclick = function () {
  145. // 判断数字是否是第一个 如果是的从最后一个开始
  146. if(nowIndex == 0){
  147. changeSwiper(4);
  148. }else{
  149. changeSwiper(nowIndex - 1);
  150. }
  151. }
  152. // 给数字按钮绑定事件
  153. // for(var i=0;i<aNumBtn.length;i++){
  154. // // 给每个数字按钮绑定一个索引值
  155. // aNumBtn[i].index = i;
  156. // aNumBtn[i].onmouseover = function(){
  157. // // 清除状态
  158. // for(var j =0;j<aNumBtn.length;j++){
  159. // // 清除所有数字按钮的选中状态
  160. // aNumBtn[j].classList.remove("active");
  161. // // 清除所有轮播图片的选中状态
  162. // aImg[j].classList.remove("active");
  163. // }
  164. // // 给当前选中的数字按钮加上选中状态
  165. // this.classList.add("active");
  166. // // 给当前选中的轮播图片加上选中状态
  167. // aImg[this.index].classList.add("active");
  168. // // 更新当前索引值
  169. // nowIndex = this.index;
  170. // }
  171. // }
  172. </script>
  173. </body>
  174. </html>