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 form表单序列化的注意事项详解
Aug 01 jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
jQuery图片加载失败替换默认图片方法汇总
Nov 29 jQuery
jQuery实现的简单获取索引功能示例
Jun 04 jQuery
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
详解jQuery中的easyui
Sep 02 jQuery
详解jQuery中的getAll()和cleanData()
Apr 15 jQuery
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
jQuery 移除事件的方法
Jun 20 jQuery
如何基于jQuery实现五角星评分
Sep 02 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读注册表
2006/10/09 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
python开发之thread线程基础实例入门
2015/11/11 Python
python决策树之CART分类回归树详解
2017/12/20 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
python使用插值法画出平滑曲线
2018/12/15 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
django和vue实现数据交互的方法
2019/08/21 Python
python SVD压缩图像的实现代码
2019/11/05 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
python实现滑雪者小游戏
2020/02/22 Python
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
一句话工作感言
2014/03/01 职场文书
计划生育宣传标语
2014/06/21 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
党建工作汇报材料
2014/12/24 职场文书
前台接待员岗位职责
2015/04/15 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
PHP实现两种排课方式
2021/06/26 PHP
一些让Python代码简洁的实用技巧总结
2021/08/23 Python