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正则表达式在页面验证url网址输入是否正确
Apr 04 jQuery
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
js和jquery中获取非行间样式
May 05 jQuery
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
Jan 18 jQuery
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
Mar 28 jQuery
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
jquery实现直播视频弹幕效果
Feb 25 jQuery
jquery绑定事件 bind和on的用法与区别分析
May 22 jQuery
jQuery实现朋友圈查看图片
Sep 11 jQuery
jQuery实现简单弹幕制作
Dec 10 jQuery
jquery实现广告上下滚动效果
Mar 04 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去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
提升PHP性能的21种方法介绍
2013/06/25 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
javascript实现小型区块链功能
2019/04/03 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
教职工代表大会主持词
2014/04/01 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
经理助理岗位职责
2015/02/02 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL