jQuery带控制按钮轮播图插件


Posted in jQuery onJuly 31, 2020

带控制按钮(点击移动到指定图片)的jQuery轮播图插件

效果图

当点击下方按钮时,轮播动画会停止,按钮所对应的图片在规定时间范围内移动出现,这一动作结束后再从当前图片开始继续轮播动画

jQuery带控制按钮轮播图插件

$.fn.slider = function(){
 
  //轮播图变量
  var $ul =this; //在jQuery原型方法中,this就指的调用该方法的jQuery对象
  var $lis = $ul.children();//返回所有的直接子标签
  var imgwidth = $lis.width();
  //设置列表的宽度
  $ul.width(imgwidth*$lis.size());//size获取元素的个数
  //获取所有的方块按钮
  var $buttons = $('.nav li');
  console.log($buttons)
  console.log($lis.size())
  //设置下标
  var index =0;//当前图片和按钮下标
  var timer = -1;//用于保存定时器id,方便停止


  //调用延时定时器
  timer= setTimeout(move,2000);//间隔2s移动一次图片
  //处理图片列表移动,以及使用延时定时器来模拟间隔定时器
  function move(){
   //获取ul当前的margin-left
  var left =parseInt( $ul.css('margin-left'));
  //当ul列表移动到最后一张时,直接设置margin-left=0px,否则继续移动
  if(left>(-1)*(imgwidth*($lis.size()-1))){
   $ul.animate({'margin-left':`-=${imgwidth}px`},1500);
   index++;//当前下标加1
   }else{
   $ul.css('margin-left','0px');
   index=0;//下标为0
   }
   //根据index来设置按钮样式
   //如果是最后一张,那么提前回到第一张
   if(index <$buttons.size()){
   $buttons.eq(index).addClass('active').siblings().removeClass('active');
   }else{
   $buttons.eq(0).addClass('active').siblings().removeClass('active');
   }
  timer = setTimeout(move,2000);
  }  
  // 点击按钮
  $buttons.click(function(){
   //$(this) 访问当前被点击的按钮
   var i = $(this).index();//获取被点击按钮的下标
   if(i==index){
   return;//提前终止
   }
   //停止未执行的定时器
   if(timer!=-1){
   clearTimeout(timer);
   }  
   //移动之前把未执行的动画暂停掉
   $ul.stop(); 
   //移动
   $ul.animate({'margin-left':`-${i*imgwidth}px`},1500,function(){
   timer = setTimeout(move,2000);
   });
   //移动之后改变按钮状态
   $buttons.eq(i).addClass('active').siblings().removeClass('active');
   // 更新当前图片下标
   index=i;
   
  });
}

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

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

jQuery 相关文章推荐
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
May 13 jQuery
Jquery EasyUI $.Parser
Jun 02 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
jquery实现搜索框功能实例详解
Jul 23 jQuery
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
jQuery实现简易QQ聊天框
Feb 10 jQuery
jQuery实现简单QQ聊天框
Aug 27 jQuery
jquery实现简单自动轮播图效果
Jul 29 #jQuery
jQuery+ThinkPHP实现图片上传
Jul 23 #jQuery
jquery实现简单拖拽效果
Jul 20 #jQuery
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 #jQuery
jquery实现有过渡效果的tab切换
Jul 17 #jQuery
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 #jQuery
jQuery 添加元素和删除元素的方法
Jul 15 #jQuery
You might like
PHP 变量类型的强制转换
2009/10/23 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
学习php分页代码实例
2013/10/24 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
javascript与CSS复习(三)
2010/06/29 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
绿色环保演讲稿
2014/05/10 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
比赛主持人开场白
2015/05/29 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python
使用javascript解析二维码的三种方式
2021/11/11 Javascript