js图片轮播插件的封装


Posted in Javascript onJuly 21, 2017

本文为大家分享了js图片轮播插件的具体代码,供大家参考,具体内容如下

我封装的这个轮播插件只需要获取到图片和按钮就可以啦。

css 样式

.body{
  width: 700px;
  margin: 100px auto;
  position: relative;
  height: 300px;
  overflow: hidden;
 }
 .body img{
  width: 700px;
  position: absolute;
  display: none;
 }
 .body ul{
  position: absolute;
  bottom: 3px;
  left: 50%;
  transform: translateX(-50%);

 }
 .body li{
  list-style: none;
  float: left;
  width: 15px;
  height: 15px;
  border-radius: 50px;
  background: none;
  border: 2px solid #fff;
  margin-right: 10px;
  cursor: pointer;
 }
 .active{
  background-color: #fff !important;

 }
 .body a{
  text-decoration: none;
  position: absolute;
  display: block;
  top: 50%;
  transform: translateY(-50%);
  height: 50px;
  width: 30px;
  background-size: 100% 60%;
  background-color: rgba(0,0,0,0.3);
 }
 .left{
  left: 0;
  background: url('../img/left.png') no-repeat center center;
 }
 .right{
  right: 0;
  background: url('../img/right.png') no-repeat center center;
 }

页面结构 html 代码

<body>
 <div class="body">
  <img src="img/1.jpg">
  <img src="img/2.jpg">
  <img src="img/3.jpg">

<ul>
   <li class="active"></li>
   <li></li>
   <li></li>
  </ul>
  <a href="javascript:;" class="left"></a>
  <a href="javascript:;" class="right"></a>
 </div>

js部分,插件调用

<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
 <script type="text/javascript" src="js/slider.js"></script>
 <script type="text/javascript">
 $.slider({
  imgElement:$(".body img"),
  liElement:$(".body li"),
  leftBtn:$(".left"),
  rightBtn:$(".right"),
  time:2000
 })
</script>

封装的插件

(function($){
 function slider(options){
  this.opts=$.extend({},slider.defaluts,options);
  this._imgSlider();
 }
 //设置默认值
 slider.defaluts={
  imgElement:null,
  liElement:null,
  leftBtn:null,
  rightBtn:null,
  time:2000
 }
 slider.prototype._imgSlider=function(){
  var opts=this.opts,
   index=0,
   len=opts.imgElement.length,
   timeInter=null;
  if(opts.imgElement=='') return;
  opts.imgElement.eq(0).show();
  showTime();
   //当鼠标经过 轮播停止,移开继续
   opts.imgElement.hover(function() {
    clearInterval(timeInter);
   }, function() {
    showTime();
   });

  //点击li 显示对应的图片
  opts.liElement.click(function(){
   var id=$(this).index();
   show(id);
  });
  //向左向右
  opts.leftBtn.click(function(){
   clearInterval(timeInter);
   --index;
   index=Math.max(0,index);
   show(index);
   showTime();
  });
  opts.rightBtn.click(function(){
   clearInterval(timeInter);
   ++index;
   index=Math.min(len-1,index);
   show(index);
   showTime();
  });


  function showTime(){
   timeInter=setInterval(function(){
    index++;
    if(index>len){
     index=0;
    }
    show(index);
   },opts.time);
  }
  function show(index){
   opts.imgElement.eq(index).fadeIn(1000).siblings('img').fadeOut(1000);
   opts.liElement.eq(index).addClass('active').siblings('li').removeClass('active');
  }

 }
 $.extend({
  slider:function(options){
   new slider(options);
  }
 })
})(jQuery)

效果图

js图片轮播插件的封装

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery浮动DIV提示信息并自动隐藏的代码
Aug 29 Javascript
jquery重复提交请求的原因浅析
May 23 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
浅析JavaScript 调试方法和技巧
Oct 22 Javascript
JQuery datepicker 用法详解
Dec 25 Javascript
Bootstrap页面标题Page Header的实现方法
Mar 22 Javascript
vue项目中v-model父子组件通信的实现详解
Dec 10 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
nvm、nrm、npm 安装和使用详解(小结)
Jan 17 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
Sep 05 Javascript
基于form-data请求格式详解
Oct 29 Javascript
详解利用eventemitter2实现Vue组件通信
Nov 04 Javascript
Javascript es7中比较实用的两个方法示例
Jul 21 #Javascript
AngularJS中使用three.js的实例详解
Jul 21 #Javascript
Axios学习笔记之使用方法教程
Jul 21 #Javascript
Vue学习笔记进阶篇之函数化组件解析
Jul 21 #Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
Jul 21 #Javascript
基于JavaScript实现数码时钟效果
Mar 30 #Javascript
bootstrap多层模态框滚动条消失的问题
Jul 21 #Javascript
You might like
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
Python中用format函数格式化字符串的用法
2015/04/08 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python远程连接MySQL数据库
2019/04/19 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
Django实现celery定时任务过程解析
2020/04/21 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
Linux的主要特性
2014/10/06 面试题
毕业生自荐书模版
2014/01/04 职场文书
转让协议书范本
2014/04/15 职场文书
2014年居委会工作总结
2014/12/09 职场文书
成本会计岗位职责
2015/02/03 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
政审证明材料
2015/06/19 职场文书
教师节表彰会主持词
2015/07/06 职场文书