博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的第一个jQuery扩展(slider)
阅读量:4963 次
发布时间:2019-06-12

本文共 3805 字,大约阅读时间需要 12 分钟。

jQuery扩展基本写法:

//jQuery.fn.extend 和 $.fn.extend都是可以的. jQuery.fn.extend({alert:function(){  alert($(this).html());   return $(this);},empty:function(){}  $(this).html('');   return $(this);});

如何使用jQuery扩展

12345

45678

$('#mydiv').alert();$('#mydiv').empty();

制作第一个jQuery插件slider

HTML代码

  • 1
  • 2
  • 3
<
>

CSS代码

/* slider start */.m_slider ul,li{margin:0; padding:0; list-style:none}.m_slider .list{height:200px;position:relative;overflow:hidden}.m_slider .list li{width:100%;height:100%;position:absolute;display:none}/*button*/.m_slider .btn_group{text-align:center;margin:10px;}.m_slider .btn_group span{cursor:pointer;margin-right:10px;font: 14px SimSun}.m_slider .btn_group .btn{color:#ccc}.m_slider .btn_group .current{color:#444}.m_slider .btn_group .previous,.m_slider .btn_group .next{border:1px solid #888;padding:4px 10px}.m_slider .btn_group .previous:active,.m_slider .btn_group .next:active{background:#eee;cursor:pointer}/* slider end */

jQuery扩展

(function($){ var sets = {   speed:1000,   interval:2000 };  function getCurrent(cur,max){   return cur < max ? cur : 0; }  function getNext(cur,max){   return cur+1 >= max ? 0 : cur+1; }  function getLeftNext(cur,max){   return cur-1 < 0 ? max-1 : cur-1; }   $.fn.extend({ slider:function(options){   var $points = $(this).find('.btn'),       $list = $(this).find('.list li'),       $previousBtn = $(this).find('.previous'),       $nextBtn = $(this).find('.next'),       size = $list.length,       width = $(this).width(),       opts = $.extend({},sets,options||{}),       current,next,animate = false,timer,       run = function(){          timer = setInterval(function(){             doAnimate(true);         },opts.interval);      };    if(size ==1) {     showFirst(0);     return;  }    //给slider添加鼠标以上去停止动画,鼠标移出开始动画    $(this).hover(function(){clearInterval(timer);}, run);    //previous按钮    $previousBtn.click(function(){       if(! animate)doAnimate(false);      }    );  //next按钮    $nextBtn.click(function(){       if(! animate)doAnimate(true);      }    );    //圆点点击事件    $points.click(function(){      var index = $(this).index()-1;       showFirst(index);    });        showFirst(0);   run();        function doAnimate(direct){            animate = true;      current = getCurrent(current,size);      next = direct?getNext(current,size):getLeftNext(current,size);     var  $current = $list.eq(current);     var  $next = $list.eq(next);      markPoint(next);      $current.css({left:'0px',display:'block'});      var w1 = direct? width+'px' : -width+'px';      $next.css({left:w1,display:'block'});      var w2 = direct? -width+'px' : width+'px';      $current.animate({left:w2},{easing:'swing',duration:opts.speed,complete:function(){         $current.css('display','none');         animate =false;         current = direct ?  current+1 :  next ;      }});     $next.animate({left:'0px'},{easing:'swing',duration:opts.speed});    }      //显示第一张    function showFirst(index){       current = getCurrent(index,size);       $list.each(function(i){           if(i===current)                $(this).css({left:'0px',display:'block'});           else                $(this).css({display:'none'});       });       markPoint(index);    }      //圆点添加样式    function markPoint(index){     $points.each(function(i){         if(i == index){          $(this).attr('className','current');         }else{          $(this).attr('className','btn');         }     });    }     }});})(jQuery);

如何使用

$('#slider1').slider({speed:1000,interval:5000});

 

转载于:https://www.cnblogs.com/xjpeng/p/3532294.html

你可能感兴趣的文章
o2o的一些看法
查看>>
web项目知识整理
查看>>
微信小游戏 修改appid
查看>>
[NOI2015]程序自动分析
查看>>
数据结构4_java---顺序串,字符串匹配算法(BF算法,KMP算法)
查看>>
高数量类别特征(high-cardinality categorical attributes)的预处理方法
查看>>
引号中任何一个字符都应该注意
查看>>
回文词
查看>>
用vim生成一批递增ID
查看>>
MySQL 及 SQL 注入
查看>>
MySQL引擎介绍ISAM,MyISAM,HEAP,InnoDB
查看>>
【Clique Problem】
查看>>
cygwin下载指南(转)
查看>>
枚举类返回Map键值对,绑定到下拉框
查看>>
深入分析 Java 中的中文编码问题
查看>>
教你在Ubuntu上体验Mac风格
查看>>
图标库
查看>>
Mysql rr和rc隔离
查看>>
Java--JDBC连接数据库
查看>>
Bzoj4600--Sdoi2016硬币游戏
查看>>