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卸载全部事件的思路详解
Apr 03 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
Sep 12 jQuery
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
Feb 15 jQuery
Vue CLI3.0中使用jQuery和Bootstrap的方法
Feb 28 jQuery
jQuery中DOM操作原则实例分析
Aug 01 jQuery
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
jQuery实现开关灯效果
Aug 02 jQuery
jQuery实现简单QQ聊天框
Aug 27 jQuery
jQuery列表动态增加和删除的实现方法
Nov 05 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
建立动态的WML站点(二)
2006/10/09 PHP
PHP 文件扩展名 获取函数
2009/06/03 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
详解JavaScript函数
2015/12/01 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python实现大文件排序的方法
2015/07/10 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
高分子材料与工程专业推荐信
2013/12/01 职场文书
心理健康课教学反思
2014/02/13 职场文书
小学开学标语
2014/07/01 职场文书
小学生思想品德评语
2014/12/31 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
计划生育目标责任书
2015/05/09 职场文书
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python