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源码分析-01总体架构分析
Nov 14 Javascript
DIV+CSS+JS不间断横向滚动实现代码
Mar 19 Javascript
datagrid框架的删除添加与修改
Apr 08 Javascript
JS去除数组重复值的五种不同方法
Sep 06 Javascript
简易的投票系统以及js刷票思路和方法
Apr 07 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 Javascript
react同构实践之实现自己的同构模板
Mar 13 Javascript
js正则匹配多个全部数据问题
Dec 20 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
Apr 21 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 Javascript
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
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&amp;&amp;mysql)三
2006/10/09 PHP
PHP编程之高级技巧——利用Mysql函数
2006/10/09 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
PHP实现倒计时功能
2020/11/16 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
js转换对象为xml
2017/02/17 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
Python中反射和描述器总结
2018/09/23 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
数百万免费的图形资源:Freepik
2020/09/21 全球购物
介绍一下Make? 为什么使用make
2016/07/31 面试题
法学函授自我鉴定
2014/02/06 职场文书