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 相关文章推荐
百度地图api应用标注地理位置信息(js版)
Feb 01 Javascript
JS判断表单输入是否为空(示例代码)
Dec 23 Javascript
三种取消选中单选框radio的方法
Sep 09 Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 Javascript
浅谈webpack-dev-server的配置和使用
May 17 Javascript
json字符串传到前台input的方法
Aug 06 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
如何在Vue.JS中使用图标组件
Aug 04 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
Sep 21 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
Nov 02 Javascript
js实现头像上传并且可预览提交
Dec 25 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
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python 循环while和for in简单实例
2016/08/16 Python
Python递归函数定义与用法示例
2017/06/02 Python
Python中GIL的使用详解
2018/10/03 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
python实现五子棋游戏
2019/06/18 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
优秀通讯员事迹材料
2014/01/28 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
感动中国何玥观后感
2015/06/02 职场文书
基于python实现银行管理系统
2021/04/20 Python
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android
MySQL常见优化方案汇总
2022/01/18 MySQL