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 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
jQuery遮罩层实例讲解
May 11 jQuery
jQuery实现radio第一次点击选中第二次点击取消功能
May 15 jQuery
基于jQuery封装的分页组件
Jun 26 jQuery
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
jQuery接受后台传递的List的实例详解
Aug 02 jQuery
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
jquery手机触屏滑动拼音字母城市选择器的实例代码
Dec 11 jQuery
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 jQuery
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
jquery获取元素到屏幕四周可视距离的方法
Sep 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
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
php判断当前操作系统类型
2015/10/28 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
js获取单选按钮的数据
2006/11/27 Javascript
jquery ajax 登录验证实现代码
2009/09/23 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
ext jquery 简单比较
2010/04/07 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
工会主席岗位责任制
2014/02/11 职场文书
应聘英语教师求职信
2014/04/24 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
岳麓书院导游词
2015/02/03 职场文书