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 相关文章推荐
ext checkboxgroup 回填数据解决
Aug 21 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
Feb 07 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
Jun 24 Javascript
jquery判断单选按钮radio是否选中的方法
May 05 Javascript
jQuery实现HTML表格单元格的合并功能
Apr 06 Javascript
手机端实现Bootstrap简单图片轮播效果
Oct 13 Javascript
基于JavaScript实现本地图片预览
Feb 08 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
Aug 19 Javascript
浅析JS中什么是自定义react数据验证组件
Oct 19 Javascript
详解如何在Angular优雅编写HTTP请求
Dec 05 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
Feb 22 Javascript
js canvas实现星空连线背景特效
Nov 01 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
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
老生常谈python之鸭子类和多态
2017/06/13 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
荟萃全球保健品:维他购
2018/05/09 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
自荐信包含哪些内容
2013/10/30 职场文书
《灯光》教学反思
2014/02/08 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
应届生求职信
2014/05/31 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
2014年租房协议书范本
2014/10/30 职场文书
2015新年寄语大全
2014/12/08 职场文书
作息时间调整通知
2015/04/22 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL