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+pjax简单示例汇总
Apr 21 jQuery
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
jquery.validate表单验证插件使用详解
Jun 21 jQuery
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
jquery手机触屏滑动拼音字母城市选择器的实例代码
Dec 11 jQuery
jQuery代码优化方法总结
Jan 29 jQuery
jQuery实现的两种简单弹窗效果示例
Apr 18 jQuery
JQueryDOM之样式操作
Mar 27 jQuery
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
Jun 06 jQuery
jquery插件懒加载的示例
Oct 24 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的getter/setter基类的代码
2007/02/25 PHP
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
CI框架Session.php源码分析
2014/11/03 PHP
php发送与接收流文件的方法
2015/02/11 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
PHP实现八皇后算法
2019/05/06 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
js中eval详解
2012/03/30 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
美国性感内衣店:Yandy
2018/06/12 全球购物
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
学校经典推荐信
2013/10/30 职场文书
行政部岗位职责范本
2014/03/13 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
个人借款协议书范本
2014/11/17 职场文书
商标侵权律师函
2015/05/27 职场文书
阳光体育运动标语口号
2015/12/26 职场文书