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+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 jQuery
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 jQuery
jquery+css实现Tab栏切换的代码实例
May 14 jQuery
JS 遍历 json 和 JQuery 遍历json操作完整示例
Nov 11 jQuery
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 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
PHP5/ZendEngine2的改进
2006/10/09 PHP
谈谈PHP语法(4)
2006/10/09 PHP
PHP静态类
2006/11/25 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
php中spl_autoload详解
2014/10/17 PHP
php购物车实现方法
2015/01/03 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
小议javascript 设计模式 推荐
2009/10/28 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
使用PYTHON接收多播数据的代码
2012/03/01 Python
python BeautifulSoup使用方法详解
2013/11/21 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
什么是索引指示器
2012/08/20 面试题
黄河的主人教学反思
2014/02/07 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
安全生产月宣传标语
2014/10/06 职场文书
财务负责人岗位职责
2015/02/03 职场文书
mysql sql常用语句大全
2022/06/21 MySQL