经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery » 查看文章
jQuery呼吸轮播图制作原理详解
来源:jb51  时间:2021/10/19 19:16:45  对本文有异议

本文实例为大家分享了jQuery呼吸轮播图制作原理的具体过程,供大家参考,具体内容如下

轮播图:carousel
呼吸轮播图变种布局重点:所有的图片摞一起。
jquery选择元素的能力非常好,但是我们习惯将用到的元素,提前保存到变量。通常我们使用id选中元素。一般我们以$box。
左右按钮防流氓的策略:当图片运动时,不进行任何操作。is()
小圆点的防流氓的策略:立即响应新事件。stop(true)

注意:使用代码时将图片更换,以及需要引入jquery库。

举例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. <style type="text/css">
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. }
  11. ul, ol {
  12. list-style: none;
  13. }
  14. #carousel {
  15. position: relative;
  16. width: 900px;
  17. height: 540px;
  18. border: 1px solid #000;
  19. margin: 50px auto;
  20. }
  21. /*呼吸轮播图布局关键是所有图片落在一起*/
  22. #carousel .imgs ul li {
  23. position: absolute;
  24. width: 100%;
  25. height: 100%;
  26. left: 0;
  27. top: 0;
  28. display: none;
  29. }
  30. #carousel .imgs ul li:first-child {
  31. display: block;
  32. }
  33. .btns a {
  34. position: absolute;
  35. width: 30px;
  36. height: 60px;
  37. top: 50%;
  38. margin-top: -30px;
  39. text-decoration: none;
  40. background-color: rgba(0, 0, 0, .5);
  41. line-height: 60px;
  42. text-align: center;
  43. font-size: 20px;
  44. color: #fff;
  45. }
  46. .btns a:first-child {
  47. left: 10px;
  48. }
  49. .btns a:last-child {
  50. right: 10px;
  51. }
  52. #carousel .circles {
  53. position: absolute;
  54. width: 200px;
  55. height: 20px;
  56. left: 50%;
  57. margin-left: -100px;
  58. bottom: 30px;
  59. }
  60. #carousel .circles ol {
  61. width: 210px;
  62. }
  63. #carousel .circles ol li {
  64. float: left;
  65. width: 20px;
  66. height: 20px;
  67. margin-right: 10px;
  68. background-color: blue;
  69. line-height: 20px;
  70. text-align: center;
  71. border-radius: 20px;
  72. }
  73. #carousel .circles ol li.cur {
  74. background-color: orange;
  75. }
  76. </style>
  77. </head>
  78. <body>
  79. <div id="carousel">
  80. <div class="imgs" id="imgs">
  81. <ul>
  82. <li><img src="images/aoyun/0.jpg" alt=""></li>
  83. <li><img src="images/aoyun/1.jpg" alt=""></li>
  84. <li><img src="images/aoyun/2.jpg" alt=""></li>
  85. <li><img src="images/aoyun/3.jpg" alt=""></li>
  86. <li><img src="images/aoyun/4.jpg" alt=""></li>
  87. <li><img src="images/aoyun/5.jpg" alt=""></li>
  88. <li><img src="images/aoyun/6.jpg" alt=""></li>
  89. </ul>
  90. </div>
  91. <div class="btns">
  92. <a href="#" id="leftBtn">&lt;</a>
  93. <a href="#" id="rightBtn">&gt;</a>
  94. </div>
  95. <div class="circles" id="circles">
  96. <ol>
  97. <li class="cur">1</li>
  98. <li>2</li>
  99. <li>3</li>
  100. <li>4</li>
  101. <li>5</li>
  102. <li>6</li>
  103. <li>7</li>
  104. </ol>
  105. </div>
  106. </div>
  107. <script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>
  108. <script type="text/javascript">
  109. // 获取元素
  110. var $leftBtn = $("#leftBtn");
  111. var $rightBtn = $("#rightBtn");
  112. var $imgs = $("#imgs ul li");
  113. var $circles = $("#circles ol li");
  114. var $carousel = $("#carousel");
  115. // 定义length
  116. var length = $imgs.length;
  117. // 定义信号量
  118. var idx = 0;
  119.  
  120.  
  121. // 开启定时器
  122. var timer = setInterval(change, 2000);
  123.  
  124.  
  125. // 鼠标移入停止定时器
  126. $carousel.mouseenter(function() {
  127. // 清除定时器
  128. clearInterval(timer);
  129. })
  130.  
  131. // 鼠标离开从新开启定时器
  132. $carousel.mouseleave(function() {
  133. // 设表先关
  134. clearInterval(timer);
  135. // 重新赋值timer
  136. timer = setInterval(change, 2000);
  137. })
  138.  
  139.  
  140. // 右按钮事件
  141. $rightBtn.click(change);
  142.  
  143. function change() {
  144. // 防流氓
  145. if ($imgs.is(":animated")) {
  146. return;
  147. }
  148. // 当前图片消失
  149. $imgs.eq(idx).fadeOut(600);
  150.  
  151. // 信号量改变
  152. idx++;
  153. // 边界判定
  154. if (idx > length - 1) {
  155. idx = 0;
  156. }
  157.  
  158. // 下一张图片淡入
  159. $imgs.eq(idx).fadeIn(600);
  160.  
  161. // 当前小圆点要加cur
  162. $circles.eq(idx).addClass("cur").siblings().removeClass("cur");
  163. }
  164.  
  165. // 左按钮事件
  166. $leftBtn.click(function() {
  167. // 防流氓
  168. if (!$imgs.is(":animated")) {
  169.  
  170. // 当前图片消失
  171. $imgs.eq(idx).fadeOut(600);
  172.  
  173. // 信号量改变
  174. idx--;
  175.  
  176. // 边界判定
  177. if (idx < 0) {
  178. idx = length - 1;
  179. }
  180.  
  181. // 下一张图片淡入
  182. $imgs.eq(idx).fadeIn(600);
  183.  
  184. // 当前小圆点加cur
  185. $circles.eq(idx).addClass("cur").siblings().removeClass("cur");
  186. }
  187. })
  188.  
  189.  
  190.  
  191. // 小圆点事件
  192. $circles.mouseenter(function() {
  193. // 当前图片消失
  194. $imgs.eq(idx).stop(true).fadeOut(600);
  195.  
  196. // 改变信号量
  197. idx = $(this).index();
  198.  
  199. // 下一张图片出现
  200. $imgs.eq(idx).stop(true).fadeIn(600);
  201.  
  202. // 当前小圆点加cur
  203. $(this).addClass("cur").siblings().removeClass("cur");
  204. })
  205.  
  206. </script>
  207. </body>
  208. </html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号