07.轮播图-自动切换图片.html 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. *{
  10. margin: 0;
  11. padding: 0;
  12. }
  13. /* 设置outer的样式 */
  14. #outer{
  15. /* 设置宽和高 */
  16. width: 615px;
  17. height: 565px;
  18. /* 居中 */
  19. margin: 50px auto;
  20. /* 设置背景颜色 */
  21. background-color: yellowgreen;
  22. /* 设置padding */
  23. padding: 10px 0;
  24. /*开启相对定位*/
  25. position: relative;
  26. /*裁剪溢出的内容*/
  27. overflow: hidden;
  28. }
  29. /*设置imgList*/
  30. #imgList{
  31. /*去除项目符号*/
  32. list-style: none;
  33. /*设置ul的宽度(宽度不能写死),所以改到script标签中去设置*/
  34. /* width: 3100px; */
  35. /*开启绝对定位*/
  36. position: absolute;
  37. /*设置偏移量*/
  38. /*
  39. 每向左移动615px,就会显示到下一张图片
  40. */
  41. left: -0px;
  42. }
  43. /* 设置图片中的li(由纵向显示调整为横向显示) */
  44. #imgList li{
  45. /*设置浮动*/
  46. float: left;
  47. /* 设置左右外边距 */
  48. margin: 0 10px;
  49. }
  50. /*设置导航按钮*/
  51. #navDiv{
  52. /*开启绝对定位*/
  53. position: absolute;
  54. /*设置位置*/
  55. bottom: 10px;
  56. /*设置left值
  57. outer宽度615
  58. navDiv宽度25*5=125
  59. 615-125=490
  60. 490/2=245
  61. */
  62. /* left: 245px; */
  63. }
  64. #navDiv a{
  65. /*设置超链接浮动*/
  66. float: left;
  67. /*设置超链接的宽高*/
  68. width: 15px;
  69. height: 15px;
  70. /*设置背景颜色*/
  71. background-color: red;
  72. /*设置左右外边距*/
  73. margin: 0 5px;
  74. /*设置透明*/
  75. opacity: 0.7;
  76. /*兼容IE8透明*/
  77. filter: alpha(opacity=50);
  78. }
  79. /*设置鼠标移入的效果*/
  80. #navDiv a:hover{
  81. background-color: black;
  82. }
  83. </style>
  84. <!-- 引入tools工具 -->
  85. <script src="js/tools.js"></script>
  86. <script>
  87. window.onload = function(){
  88. //设置imgList的宽度
  89. //获取imgList
  90. var imgList = document.getElementById('imgList');
  91. //获取页面中所有的img标签
  92. var imgArr = document.getElementsByTagName('img');
  93. //设置imgList的宽度
  94. imgList.style.width = 615*imgArr.length + 'px';
  95. /*设置导航按钮居中*/
  96. //获取navDiv
  97. var navDiv = document.getElementById('navDiv');
  98. //获取outer
  99. var outer = document.getElementById('outer');
  100. //设置navDiv的left值
  101. navDiv.style.left = (outer.offsetWidth - navDiv.offsetWidth)/2+'px';
  102. //默认显示图片的索引
  103. var index = 0;
  104. //获取所有的a
  105. var allA = document.getElementsByTagName('a');
  106. //设置默认选中的效果
  107. allA[index].style.backgroundColor = "black";
  108. /**
  109. * 点击超链接切换到指定的图片
  110. * 点击第一个超链接,显示第一个图片
  111. * 点击第二个超链接,显示第二个图片
  112. */
  113. //为所有的超链接都绑定单击响应函数
  114. for(var i=0;i<allA.length;i++){
  115. //为每一个超链接都添加一个num属性
  116. allA[i].num = i;
  117. //为超链接绑定单击响应函数
  118. allA[i].onclick = function(){
  119. //单击时关闭自动切换的定时器
  120. clearInterval(timer);
  121. // alert('hello');
  122. // alert(this);
  123. // alert(this.num);
  124. //获取点击超链接的索引,并将其设置为index
  125. index = this.num;
  126. //切换图片
  127. /**
  128. * 第一张 索引:0 left:0px
  129. * 第二张 索引:1 left:-615px
  130. * 第三张 索引:2 left:-1230px
  131. */
  132. // imgList.style.left = -615*index+'px';
  133. //设置选中的a
  134. setA();
  135. //使用
  136. move(imgList,'left',-615*index,30,function(){
  137. //动画执行完毕,开启自动切换
  138. autoChange();
  139. });
  140. };
  141. }
  142. //自动切换图片
  143. autoChange();
  144. //创建一个方法用来设置选中的a
  145. function setA(){
  146. //判断当前索引是否是最后一张图片
  147. if(index >= imgArr.length - 1){
  148. //则将index设置为0
  149. index = 0;
  150. //此时显示的最后一张图片,而最后一张图片和第一张是一模一样的
  151. //通过CSS将最后一张切换成第一张
  152. imgList.style.left = 0;
  153. };
  154. //遍历所有的a,并将它们的颜色设置为红色
  155. for(var i=0;i<allA.length;i++){
  156. allA[i].style.backgroundColor = '';
  157. //设置为空串,就表示把内联样式的背景颜色去掉了
  158. };
  159. //将选中的a设置为黑色
  160. allA[index].style.backgroundColor = 'black';
  161. };
  162. //定义一个自动切换的定时器的标识
  163. var timer;
  164. //创建一个函数,用来开启自动切换图片
  165. function autoChange(){
  166. //开启定时器,用来定时切换图片
  167. timer = setInterval(function(){
  168. //是索引自增
  169. index++;
  170. //判断index的值
  171. index %= imgArr.length
  172. //执行动画,切换图片
  173. move(imgList,'left',-615*index,20,function(){
  174. //修改导航按钮
  175. setA();
  176. });
  177. },3000);
  178. };
  179. };
  180. </script>
  181. </head>
  182. <body>
  183. <!-- 创建一个外部的div,来作为大的容器 -->
  184. <div id="outer">
  185. <!-- 创建一个ul,用于放置图片 -->
  186. <ul id="imgList">
  187. <li><img src="img/gl.jpeg"/></li>
  188. <li><img src="img/mn.jpeg"/></li>
  189. <li><img src="img/wo.jpeg"/></li>
  190. <li><img src="img/ym.jpeg"/></li>
  191. <li><img src="img/zly.jpeg"/></li>
  192. <li><img src="img/gl.jpeg"/></li>
  193. </ul>
  194. <!-- 创建导航按钮 -->
  195. <div id="navDiv">
  196. <a href="javascript:;"></a>
  197. <a href="javascript:;"></a>
  198. <a href="javascript:;"></a>
  199. <a href="javascript:;"></a>
  200. <a href="javascript:;"></a>
  201. </div>
  202. </div>
  203. </body>
  204. </html>