jquery 无缝轮播
来源:互联网 发布:ipad pro 10.5淘宝 编辑:程序博客网 时间:2024/05/16 09:53
思路: 先静态布局,设置一个变量为下标,利用jquery的选择器获取点击的所有li,获取宽,再写上下页的封装函数(进行下标的++,根据当前的下标判断是不是最后一张,(做一些动画效果,先停止动画一次),最后一张就把下标设置为0;跳到第一张,不是最后一张,根据left值改变图片的显示);获取所有点击的li,添加点击事件,先清空所有,获取当前的下标,根据下标添加类名,再添加一个切换的动画(先停止一次)
1.html部分
<div id="box"> <ul class="ul1" id="ul1"> <li class="active"><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li><a href="#">6</a></li> </ul> <ul class="ul2" id="ul2"> <li><a href="#"><img src="轮播/pic3.jpg" height="240" width="670"></a><span>-1</span></li> <li style="display: block;"><a href="#"><img src="轮播/pic1.jpg" height="240" width="670"></a><span>0</span></li> <li><a href="#"><img src="轮播/pic2.jpg" height="240" width="670"></a><span>1</span></li> <li><a href="#"><img src="轮播/pic4.jpg" height="240" width="670"></a><span>2</span></li> <li><a href="#"><img src="轮播/pic5.jpg" height="240" width="670"></a><span>2</span></li> <li><a href="#"><img src="轮播/pic6.jpg" height="240" width="670"></a><span>2</span></li> <li><a href="#"><img src="轮播/pic3.jpg" height="240" width="670"></a><span>2</span></li> <li style="display: block;"><a href="#"><img src="轮播/pic1.jpg" height="240" width="670"></a><span>3</span></li> </ul> <div class="pre-next"> <a href="javascript:;" id="pre"><</a> <a href="javascript:;" id="next">></a> </div></div>
2.css部分
<style type="text/css"> * { margin: 0; padding: 0; list-style: none; } #box { width: 670px; height: 240px; margin: 0 auto; background: pink; position: relative; overflow: hidden; } .ul1 { overflow: hidden; position: absolute; right: 10px; bottom: 0; z-index: 1000; } .ul1 li { float: left; margin: 5px; width: 22px; height: 22px; background: #ccc; text-align: center; line-height: 22px; border-radius: 50%; } .ul1 li.active { background: orange; } .ul1 li a { color: #fff; text-decoration: none; } .ul2 { overflow: hidden; left: -670px; position: absolute; height: 240px; } .ul2 li { /*display: none;*/ float: left; position: relative; } .ul2 li span { position: absolute; width: 50px; height: 50px; border-radius: 50%; background-color: #ccc; left: 50%; top: 50%; text-align: center; line-height: 50px; margin: -25px 0 0 -25px; } img { vertical-align: top; } .pre-next { position: absolute; left: 0; top: 50%; margin-top: -30px; height: 60px; width: 100%; } .pre-next a { width: 40px; height: 60px; background: rgba(0,0,0,0.3); color: #fff; text-decoration: none; font-size: 20px; line-height: 60px; position: absolute; text-align: center; } #pre { left: 0; } #next { right: 0; } </style>
3.js部分
<script type="text/javascript" src="jq1.7.2/jquery.js"></script> <script type="text/javascript"> $(function(){ // 下标 var iNow = 0; var aLi2 = $('.ul2 li'); // 一个li的宽 var liW = aLi2.width(); // 先设置ul的宽 $('.ul2').width(aLi2.length * liW); // 下一页 $('#next').on('click',nextPage); // 上一页 $('#pre').on('click',prePage); //上一页的函数 function prePage () { iNow--; if (iNow == -1) { $('.ul2').stop().animate({left: -(iNow + 1) * liW},100,function () { $('.ul2').css('left',-(aLi2.length - 2) * liW); }); iNow = aLi2.length - 3; }else { $('.ul2').stop().animate({left: -(iNow + 1) * liW},100); } // 改变选项 $('.ul1 li').removeClass('active'); $('.ul1 li').eq(iNow).addClass('active'); } // 下一页的函数 function nextPage() { iNow++; // 1 if (iNow == aLi2.length - 2) { $('.ul2').stop().animate({left: -(iNow + 1) * liW},100,function () { $('.ul2').css('left',-liW); }); iNow = 0; } else { // 给ul设置left // $('.ul2').css('left',-(iNow + 1) * liW); $('.ul2').stop().animate({left: -(iNow + 1) * liW},100); } // 改变选项 $('.ul1 li').removeClass('active'); $('.ul1 li').eq(iNow).addClass('active'); } // 选项卡 $('.ul1 li').click(function () { // 先清空所有 // 改变选项 $('.ul1 li').removeClass('active'); iNow = $(this).index(); $('.ul1 li').eq(iNow).addClass('active'); $('.ul2').stop().animate({left: -(iNow + 1) * liW},100); }); }) </script>
阅读全文
0 0
- jQuery无缝轮播
- jQuery无缝轮播
- jquery 无缝轮播
- jQuery制作无缝轮播
- jquery实现无缝轮播
- jquery实现无缝图片轮播
- jquery自动无缝轮播代码
- jquery广告无缝轮播代码实例
- jquery实现轮播图的无缝轮播
- 无缝轮播切换
- 图片无缝轮播
- 无缝轮播
- 无缝轮播
- 无缝轮播
- js无缝轮播
- 无缝轮播图片
- 无缝轮播demo
- 实现无缝轮播
- vs2015 编译 leela zero
- 利用Sqoop将MySQL海量测试数据导入HDFS和HBase
- StringUtils中 isNotEmpty 和isNotBlank的区别
- 用try...catch对异常代码进行处理
- Java.lang.IllegalStateException Activity has been destroyed
- jquery 无缝轮播
- Spring基础知识整理
- 从0到1优雅的实现PHP多进程管理
- Hadoop伪分布式集群搭建
- JNI ReferenceTable overflow泄露问题
- C语言编写Dijkstra算法及生成图
- JS使用getJSON获取站点配置文件
- (算法分析Week15)01Matrix[Medium]
- python之函数用法fromkeys()