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 相关文章推荐
js中的异常处理try...catch使用介绍
Sep 21 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
javascript跨域的4种方法和原理详解
Apr 08 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
js仿黑客帝国字母掉落效果代码分享
Nov 08 Javascript
PHP抓取HTTPS内容和错误处理的方法
Sep 30 Javascript
微信小程序 教程之模块化
Oct 17 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
AngularJS下$http服务Post方法传递json参数的实例
Mar 29 Javascript
webpack源码之loader机制详解
Apr 06 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
Jun 15 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五种设计模式小结
2011/03/23 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
React中的render何时执行过程
2018/04/13 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
pytorch 求网络模型参数实例
2019/12/30 Python
python如何提升爬虫效率
2020/09/27 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
高三霸气励志标语
2014/06/24 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
2014年城管工作总结
2014/11/20 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python
app场景下uniapp的扫码记录
2022/07/23 Java/Android