jquery实现左右无缝轮播图


Posted in Javascript onJuly 31, 2020

本文实例为大家分享了jquery无缝轮播图的实现代码,供大家参考,具体内容如下

<title>无缝轮播图</title>
 <style>
 *{margin: 0;padding:0; }
 ul{list-style: none;}
 .banner{width: 600px;height: 300px;border: 2px solid #ccc;margin: 100px auto;position: relative;overflow: hidden;}
 .img{position: absolute;top: 0;left: 0}
 .img li{float: left;}
 .num{position: absolute;bottom: 10px;width: 100%;text-align: center;font-size: 0;}
 .num li{width: 10px;height: 10px;background:rgba(0,0,0,0.5);display: block;border-radius: 100%;display: inline-block;margin: 0 5px;cursor: pointer;}
 .btn{display: none;}
 .btn span{display: block;width: 50px;height: 100px;background: rgba(0,0,0,0.6);color: #fff;font-size: 40px;line-height: 100px;text-align: center;cursor:pointer;}
 .btn .prev{position: absolute;left: 0;top: 50%;margin-top: -50px;}
 .btn .next{position: absolute;right: 0;top: 50%;margin-top: -50px;}
 .num .active{background-color: #fff;}
 </style>
 <script src="http://apps.bdimg.com/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
<div class="banner">
 <ul class="img">
 <li><a href="#"><img src="img/1.jpg" alt="第1张图片"></a></li>
 <li><a href="#"><img src="img/2.jpg" alt="第2张图片"></a></li>
 <li><a href="#"><img src="img/3.jpg" alt="第3张图片"></a></li>
 <li><a href="#"><img src="img/4.jpg" alt="第4张图片"></a></li>
 <li><a href="#"><img src="img/5.jpg" alt="第5张图片"></a></li>
 </ul>
 <ul class="num"></ul> //
 <div class="btn">
 <span class="prev"><</span>
 <span class="next">></span>
 </div>
 
</div>
 
<script>
 
 $(function(){
 
 var i=0;
 var timer=null;
 for (var j = 0; j < $('.img li').length; j++) { //创建圆点
 $('.num').append('<li></li>')
 }
 $('.num li').first().addClass('active'); //给第一个圆点添加样式
 
 var firstimg=$('.img li').first().clone(); //复制第一张图片
 $('.img').append(firstimg).width($('.img li').length*($('.img img').width())); //将第一张图片放到最后一张图片后,设置ul的宽度为图片张数*图片宽度
 
 
 // 下一个按钮
 $('.next').click(function(){
 i++;
 if (i==$('.img li').length) {
 i=1; //这里不是i=0
 $('.img').css({left:0}); //保证无缝轮播,设置left值
 };
 
 $('.img').stop().animate({left:-i*600},300);
 if (i==$('.img li').length-1) { //设置小圆点指示
 $('.num li').eq(0).addClass('active').siblings().removeClass('active');
 }else{
 $('.num li').eq(i).addClass('active').siblings().removeClass('active');
 }
 
 })
 
 // 上一个按钮
 $('.prev').click(function(){
 i--;
 if (i==-1) {
 i=$('.img li').length-2;
 $('.img').css({left:-($('.img li').length-1)*600});
 }
 $('.img').stop().animate({left:-i*600},300);
 $('.num li').eq(i).addClass('active').siblings().removeClass('active');
 })
 
 //设置按钮的显示和隐藏
 $('.banner').hover(function(){
 $('.btn').show();
 },function(){
 $('.btn').hide();
 })
 
 //鼠标划入圆点
 $('.num li').mouseover(function(){
 var _index=$(this).index();
 $('.img').stop().animate({left:-_index*600},150);
 $('.num li').eq(_index).addClass('active').siblings().removeClass('active');
 })
 
 //定时器自动播放
 timer=setInterval(function(){
 i++;
 if (i==$('.img li').length) {
 i=1;
 $('.img').css({left:0});
 };
 
 $('.img').stop().animate({left:-i*600},300);
 if (i==$('.img li').length-1) { 
 $('.num li').eq(0).addClass('active').siblings().removeClass('active');
 }else{
 $('.num li').eq(i).addClass('active').siblings().removeClass('active');
 }
 },1000)
 
 //鼠标移入,暂停自动播放,移出,开始自动播放
 $('.banner').hover(function(){ 
 clearInterval(timer);
 },function(){
 timer=setInterval(function(){
 i++;
 if (i==$('.img li').length) {
 i=1;
 $('.img').css({left:0});
 };
 
 $('.img').stop().animate({left:-i*600},300);
 if (i==$('.img li').length-1) { 
 $('.num li').eq(0).addClass('active').siblings().removeClass('active');
 }else{
 $('.num li').eq(i).addClass('active').siblings().removeClass('active');
 }
 },1000)
 })
 
 })
</script>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

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

Javascript 相关文章推荐
JavaScript this 深入理解
Jul 30 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
Dec 18 Javascript
非常棒的10款jQuery 幻灯片插件
Jun 14 Javascript
关于js遍历表格的实例
Jul 10 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
Nov 16 Javascript
jQuery获取Table某列的值(推荐)
Mar 03 Javascript
React事件处理的机制及原理
Dec 03 Javascript
JavaScript简单实现的仿微博留言功能示例
Jan 17 Javascript
JavaScript实现美化滑块效果
May 17 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
Dec 12 Javascript
JS中==、===你分清楚了吗
Mar 04 Javascript
vue elementUI表格控制对应列
Apr 13 Vue.js
node.js从数据库获取数据
May 08 #Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 #Javascript
基于jquery实现最简单的选项卡切换效果
May 08 #Javascript
基于javascript实现图片滑动效果
May 07 #Javascript
基于jquery实现图片放大功能
May 07 #Javascript
基于bootstrap插件实现autocomplete自动完成表单
May 07 #Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 #Javascript
You might like
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
js 数组操作代码集锦
2009/04/28 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
小程序调用微信支付的方法
2019/09/26 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python的词法分析与语法分析
2013/05/18 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
课程设计的心得体会
2014/09/03 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
离婚被告代理词
2015/05/23 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
PHP中->和=>的意思
2021/03/31 PHP
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
详解MindSpore自定义模型损失函数
2021/06/30 Python
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js