jQuery简单自定义图片轮播插件及用法示例


Posted in Javascript onNovember 21, 2016

本文实例讲述了jQuery简单自定义图片轮播插件及用法。分享给大家供大家参考,具体如下:

经常使用别人的插件,现在自己写一个,纪念一下。

jQuery.banner.js:

/*
* banner 0.1
* 使用banner 实现图片定时切换 鼠标经过停止动画
* 鼠标离开,继续动画
*/
;(function($){
  $.fn.banner =function(options){
    //各种属性和参数
    var defaults ={
       picWidth:"1000",
      picHeight:"300",
      speed:"1500"
    };
    var totalW = 0;  //保存总的动画宽度
    var timer = null; //保存定时器
    var current = 0; //保存当前动画到第N张图,下次从这里开始
    var totalNum = 0; //保存总的图数
    var Dsqtime = 0; //定义定时器时间 【外传参数】
    var Dhtime = 0;  //定义动画时间
    var count = 0 ;
    //合并多个对象为一个,即有新参数 用新的,否则用默认的
    var options = $.extend(defaults, options);
    this.each(function(){
      //实现代码
      var __this = $(this);
      Dsqtime = options.speed;
      Dhtime = Dsqtime/3;
      //初始化
      init(__this);
      //调用动画
      show(__this, options.picWidth,current);
      //鼠标经过时事件
      __this.find('ul li').bind('mouseover',function(){
        window.clearInterval(timer); //清除定时器
      });
      __this.find('ul li').bind('mouseout',function(){
        show(__this, options.picWidth,current);
         //接着上一次动画轮播
      });
    });
    //初始化 设定父容器宽度
    function init(obj){
      obj.find('ul li').each(function(){
         totalW += $(this).width();
         totalNum++;
       });
      obj.find('ul').width(totalW);
    }
    //开始动画显示
    function show(obj, width, current){
      timer = setInterval(function(){
      obj.find('ul').animate({'margin-left':'-'+count*width+'px'},
         Dhtime);
          current = count;
          count++;
          if(count == totalNum){
           count =0;
          }
       }, Dsqtime);
    }
  };
})(jQuery);

html代码:

<!doctype html>
<html>
 <head>
   <meta charset="utf8"/>
   <script type="text/javascript" src="./js/jquery.min.js"></script>
   <script type="text/javascript" src="./js/jquery.banner.js"></script>
   <script type="text/javascript">
     $(document).ready(function(){
       $('.wrap').banner({
        picWidth:"1000",
        picHeight:"300",
        speed:"6000"
       });
     });
   </script>
   <style type="text/css">
     *{margin:0;padding:0;}
     .wrap{width:1000px; height:300px; overflow:hidden; margin:0 auto;}
     .wrap ul li{float:left; list-style:none;}
     .wrap ul li img{width:1000px;height:300px;}
     .clear{clear: both;}
   </style>
 </head>
 <body>
   <div>
    <div class="wrap">
      <ul>
        <li><a href="#"><img src="./images/1.jpg"/></a></li>
        <li><a href="#"><img src="./images/2.jpg"/></a></li>
        <li><a href="#"><img src="./images/3.jpg"/></a></li>
        <li><a href="#"><img src="./images/4.jpg"/></a></li>
        <li><a href="#"><img src="./images/5.jpg"/></a></li>
      </ul>
      <div class="clear"></div>
    </div>
   </div>
 </body>
</html>

效果图:

jQuery简单自定义图片轮播插件及用法示例

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript之ESC(第二类混淆)
May 06 Javascript
JavaScript XML和string相互转化实现代码
Jul 04 Javascript
javascript设计模式 封装和信息隐藏(上)
Jul 24 Javascript
页面回到顶部的三种实现(锚标记,js)
Oct 01 Javascript
window.open不被拦截的简单实现代码(推荐)
Aug 04 Javascript
Vuex之理解state的用法实例
Apr 19 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 Javascript
详解Vue源码中一些util函数
Apr 24 Javascript
vue使用swiper实现中间大两边小的轮播图效果
Nov 24 Javascript
d3.js 地铁轨道交通项目实战
Nov 27 Javascript
Vue中的this.$options.data()和this.$data用法说明
Jul 26 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 #Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 #Javascript
基于jQuery实现Tabs选项卡自定义插件
Nov 21 #Javascript
基于jQuery实现Accordion手风琴自定义插件
Oct 13 #Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 #Javascript
js原生实现FastClick事件的实例
Nov 20 #Javascript
常用原生js自定义函数总结
Nov 20 #Javascript
You might like
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
javascript 保存文件到本地实现方法
2012/11/29 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
angular2使用简单介绍
2016/03/01 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
安全生产活动月方案
2014/03/09 职场文书
员工工作表现评语
2014/04/26 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
飞越疯人院观后感
2015/06/09 职场文书
重温入党誓词主持词
2015/06/29 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
创业计划书详解
2019/07/19 职场文书
python实现进度条的多种实现
2021/04/29 Python
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS