用jQuery如何呼吸轮播图,思路及过程是什么
Admin 2022-06-24 群英技术资讯 1053 次浏览
本文实例为大家分享了jQuery呼吸轮播图制作原理的具体过程,供大家参考,具体内容如下
轮播图:carousel
呼吸轮播图变种布局重点:所有的图片摞一起。
jquery选择元素的能力非常好,但是我们习惯将用到的元素,提前保存到变量。通常我们使用id选中元素。一般我们以$box。
左右按钮防流氓的策略:当图片运动时,不进行任何操作。is()
小圆点的防流氓的策略:立即响应新事件。stop(true)
注意:使用代码时将图片更换,以及需要引入jquery库。
举例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> * { margin: 0; padding: 0; } ul, ol { list-style: none; } #carousel { position: relative; width: 900px; height: 540px; border: 1px solid #000; margin: 50px auto; } /*呼吸轮播图布局关键是所有图片落在一起*/ #carousel .imgs ul li { position: absolute; width: 100%; height: 100%; left: 0; top: 0; display: none; } #carousel .imgs ul li:first-child { display: block; } .btns a { position: absolute; width: 30px; height: 60px; top: 50%; margin-top: -30px; text-decoration: none; background-color: rgba(0, 0, 0, .5); line-height: 60px; text-align: center; font-size: 20px; color: #fff; } .btns a:first-child { left: 10px; } .btns a:last-child { right: 10px; } #carousel .circles { position: absolute; width: 200px; height: 20px; left: 50%; margin-left: -100px; bottom: 30px; } #carousel .circles ol { width: 210px; } #carousel .circles ol li { float: left; width: 20px; height: 20px; margin-right: 10px; background-color: blue; line-height: 20px; text-align: center; border-radius: 20px; } #carousel .circles ol li.cur { background-color: orange; } </style> </head> <body> <div id="carousel"> <div class="imgs" id="imgs"> <ul> <li><img src="images/aoyun/0.jpg" alt=""></li> <li><img src="images/aoyun/1.jpg" alt=""></li> <li><img src="images/aoyun/2.jpg" alt=""></li> <li><img src="images/aoyun/3.jpg" alt=""></li> <li><img src="images/aoyun/4.jpg" alt=""></li> <li><img src="images/aoyun/5.jpg" alt=""></li> <li><img src="images/aoyun/6.jpg" alt=""></li> </ul> </div> <div class="btns"> <a href="#" id="leftBtn"><</a> <a href="#" id="rightBtn">></a> </div> <div class="circles" id="circles"> <ol> <li class="cur">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> </ol> </div> </div> <script type="text/javascript" src="js/jquery-1.12.3.min.js"></script> <script type="text/javascript"> // 获取元素 var $leftBtn = $("#leftBtn"); var $rightBtn = $("#rightBtn"); var $imgs = $("#imgs ul li"); var $circles = $("#circles ol li"); var $carousel = $("#carousel"); // 定义length var length = $imgs.length; // 定义信号量 var idx = 0; // 开启定时器 var timer = setInterval(change, 2000); // 鼠标移入停止定时器 $carousel.mouseenter(function() { // 清除定时器 clearInterval(timer); }) // 鼠标离开从新开启定时器 $carousel.mouseleave(function() { // 设表先关 clearInterval(timer); // 重新赋值timer timer = setInterval(change, 2000); }) // 右按钮事件 $rightBtn.click(change); function change() { // 防流氓 if ($imgs.is(":animated")) { return; } // 当前图片消失 $imgs.eq(idx).fadeOut(600); // 信号量改变 idx++; // 边界判定 if (idx > length - 1) { idx = 0; } // 下一张图片淡入 $imgs.eq(idx).fadeIn(600); // 当前小圆点要加cur $circles.eq(idx).addClass("cur").siblings().removeClass("cur"); } // 左按钮事件 $leftBtn.click(function() { // 防流氓 if (!$imgs.is(":animated")) { // 当前图片消失 $imgs.eq(idx).fadeOut(600); // 信号量改变 idx--; // 边界判定 if (idx < 0) { idx = length - 1; } // 下一张图片淡入 $imgs.eq(idx).fadeIn(600); // 当前小圆点加cur $circles.eq(idx).addClass("cur").siblings().removeClass("cur"); } }) // 小圆点事件 $circles.mouseenter(function() { // 当前图片消失 $imgs.eq(idx).stop(true).fadeOut(600); // 改变信号量 idx = $(this).index(); // 下一张图片出现 $imgs.eq(idx).stop(true).fadeIn(600); // 当前小圆点加cur $(this).addClass("cur").siblings().removeClass("cur"); }) </script> </body> </html>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了事件冒泡、事件捕获和事件委托,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要给大家分享js不常见操作运算符总结,下面文章收i部分js操作运算符得介绍,需要的朋友可以参考一下,希望对你有帮助
这篇文章主要介绍了总结分享10个JavaScript代码优化小tips,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
javascript数字取绝对值的方法:1、利用Math对象的abs()方法,语法“Math.abs(数字)”;2、利用“-”运算符,语法“-数字”;3、利用“*”运算符和sqrt()方法,语法“Math.sqrt(a*a)”。
有时候我们会遇到对数组进行筛选的需求,例如在一组输入的数字中,筛选出符合要求的数组,那么这用JavaScripy要怎样实现呢?下面就给大家分享一下js实现筛选数组的代码。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008