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 相关文章推荐
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
Jquery树插件zTree用法入门教程
Feb 17 Javascript
JavaScript Sort 的一个错误用法示例
Mar 20 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
jQuery的remove()方法使用详解
Aug 11 Javascript
js判断上传文件后缀名是否合法
Jan 28 Javascript
很棒的js选项卡切换效果
Jul 15 Javascript
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
基于JSONP原理解析(推荐)
Dec 04 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
Apr 12 Javascript
JavaScript中while循环的基础使用教程
Aug 11 Javascript
Node.js path模块,获取文件后缀名操作
Nov 07 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
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
python排序方法实例分析
2015/04/30 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
python看某个模块的版本方法
2018/10/16 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
django如何实现视图重定向
2019/07/24 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
机关单位动员会主持词
2014/03/20 职场文书
超市客服工作职责
2014/06/11 职场文书
找工作求职信
2014/07/07 职场文书
导游词之凤凰古城
2019/10/22 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏