您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

jQuery插件制作之参数用法实例分析

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   本文实例讲述了jQuery插件制作之参数用法。分享给大家供大家参考。具体分析如下:

  1、无参数实现文字阴影效果

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 jQuery.fn.shadow =function(){ return this.each(function(){ var $originalElement = jQuery(this); for(var i = 0;i < 5;i++){ $originalElement.clone() .css({ position :"absolute", left :$originalElement.offset().left + i, top :$originalElement.offset().top + i, margin : 0, zIndex : -1, opacity : 0.1 }) .appendTo("body"); } }) }

  调用的例子:

   代码如下:

  $("h1").shadow();

  2、简单的参数

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 jQuery.fn.shadow =function(slices,opacity,zIndex){ return this.each(function(){ var $originalElement = jQuery(this); for(var i = 0;i < slices;i++){ $originalElement.clone() .css({ position :"absolute", left :$originalElement.offset().left + i, top :$originalElement.offset().top + i, margin : 0, zIndex : zIndex, opacity : opacity }) .appendTo("body"); } }) }

  调用的例子:

  代码如下:

  $("h1").shadow(10,0.1,-1);

  3、参数的映射

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 jQuery.fn.shadow =function(opts){ return this.each(function(){ var $originalElement = jQuery(this); for(var i = 0;i < opts.slices;i++){ $originalElement.clone() .css({ position :"absolute", left :$originalElement.offset().left + i, top : $originalElement.offset().top+ i, margin : 0, zIndex :opts.zIndex, opacity : opts.opacity }) .appendTo("body"); } }) }

  调用的例子:

  代码如下:

  $("h1").shadow({

  slices : 5,

  opacity : 0.25,

  zIndex : -1

  });

  4、默认的参数值(这个是最重要的)

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 jQuery.fn.shadow =function(options){ var defaults = { slices : 5, opacity : 0.1, zIndex : -1 }; //options中如果存在defaults中的值,则覆盖defaults中的值 var opts = jQuery.extend(defaults,options); return this.each(function(){ var $originalElement = jQuery(this); for(var i = 0;i < opts.slices;i++){ $originalElement.clone() .css({ position :"absolute", left :$originalElement.offset().left + i, top :$originalElement.offset().top + i, margin : 0, zIndex :opts.zIndex, opacity : opts.opacity }) .appendTo("body"); } }) }

  调用的例子:

   代码如下:

  $("h1").shadow({

  opacity : 0.05

  });

  5、回调函数

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 jQuery.fn.shadow =function(options){ var defaults = { slices : 5, opacity : 0.1, zIndex : -1, sliceOffset : function(i){ return {x:i,y:i} } }; //options中如果存在defaults中的值,则覆盖defaults中的值 var opts = jQuery.extend(defaults,options); return this.each(function(){ var $originalElement = jQuery(this); for(var i = 0;i < opts.slices;i++){ //调用回调函数 var offset = opts.sliceOffset(i); $originalElement.clone() .css({ position :"absolute", left :$originalElement.offset().left + offset.x, top :$originalElement.offset().top + offset.y, margin : 0, zIndex :opts.zIndex, opacity : opts.opacity }) .appendTo("body"); } }) }

  调用的例子:

  代码如下:

  $("h1").shadow({

  sliceOffset : function(i){

  return {x : -i,y : -2 * i}

  }

  });

  6、可定制的默认值

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 jQuery.fn.shadow =function(options){ //默认值被放在投影插件的命名空间里了 var opts =jQuery.extend({},jQuery.fn.shadow.defaults,options); return this.each(function(){ var $originalElement = jQuery(this); for(var i = 0;i < opts.slices;i++){ //调用回调函数 var offset = opts.sliceOffset(i); $originalElement.clone() .css({ position :"absolute", left :$originalElement.offse