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的ajax实现二级联动效果
Jul 13 jQuery
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
基于jquery实现九宫格拼图小游戏
Nov 30 jQuery
jquery获取img的src值实例介绍
Jan 16 jQuery
jquery的$().each和$.each的区别
Jan 18 jQuery
使vue实现jQuery调用的两种方法
May 12 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
Jun 06 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+Html+缓存
2006/11/25 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
PHP之预定义接口详解
2015/07/29 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
微信小程序 如何获取网络状态
2019/07/26 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
python人人网登录应用实例
2014/09/26 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
浅析Python数据处理
2018/05/02 Python
用pycharm开发django项目示例代码
2018/10/24 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
python实现函数极小值
2019/07/10 Python
在python3中实现更新界面
2020/02/21 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
长城导游词400字
2015/01/30 职场文书