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插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
使用jQuery实现简单的tab框实例
Aug 22 jQuery
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
jQuery 导航自动跟随滚动的实现代码
May 30 jQuery
jQuery pagination分页示例详解
Oct 23 jQuery
用jQuery将JavaScript对象转换为querystring查询字符串的方法
Nov 12 jQuery
jQuery操作cookie的示例代码
Jun 05 jQuery
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
Oct 10 jQuery
jquery实现直播弹幕效果
Nov 28 jQuery
jQuery实现简单全选框
Sep 13 jQuery
jquery简易手风琴插件的封装
Oct 13 jQuery
jQuery实现放大镜案例
Oct 19 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中COOKIES使用示例
2015/07/26 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
python控制台中实现进度条功能
2015/11/10 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
中国旅游网站:途牛旅游网
2019/09/29 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
jQuery treeview树形结构应用
2021/03/24 jQuery
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电