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通过className来获取元素的简单示例代码
Jan 10 Javascript
js实现超酷的照片墙展示效果图附源码下载
Oct 08 Javascript
学习vue.js条件渲染
Dec 03 Javascript
微信小程序 九宫格实例代码
Jan 21 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
Feb 13 Javascript
100多个基础常用JS函数和语法集合大全
Feb 16 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
angular写一个列表的选择全选交互组件的示例
Jan 22 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
JS使用队列对数组排列,基数排序算法示例
Mar 02 Javascript
如何实现双向绑定mvvm的原理实现
May 28 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 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
关于js与php互相传值的介绍
2013/06/25 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP小技巧之函数重载
2014/06/02 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
python获取当前日期和时间的方法
2015/04/30 Python
python实现微信小程序自动回复
2018/09/10 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
Java面向对象面试题
2016/12/26 面试题
创业计划书怎样才能打动风投
2014/01/01 职场文书
小学生成长感言
2014/01/30 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
春季运动会加油词
2015/07/18 职场文书