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和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
详谈jQuery.load()和Jsp的include的区别
Apr 12 jQuery
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
Angular2使用jQuery的方法教程
May 28 jQuery
jQuery鼠标移动图片上实现放大效果
Jun 25 jQuery
基于jQuery实现的单行公告活动轮播效果
Aug 23 jQuery
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 jQuery
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
浅谈jquery fullpage 插件增加头部和版权的方法
Mar 20 jQuery
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
原生jQuery实现只显示年份下拉框
Dec 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
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
php编程每天必学之验证码
2016/03/03 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
JS实现移动端双指缩放和旋转方法
2019/12/13 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
遗传算法之Python实现代码
2017/10/10 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
减负增效提质方案
2014/05/23 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
python绘制箱型图
2021/04/27 Python
pytorch 如何使用float64训练
2021/05/24 Python