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

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

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

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、简单的参数

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、参数的映射

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、默认的参数值(这个是最重要的)

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、回调函数

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、可定制的默认值

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.offset().left + offset.x,
    top :$originalElement.offset().top + offset.y,
    margin : 0,
    zIndex :opts.zIndex,
    opacity : opts.opacity
   })
   .appendTo("body");
  }
 })
}
jQuery.fn.shadow.defaults= {
 slices : 5,
 opacity : 0.1,
 zIndex : -1,
 sliceOffset : function(i){
  return { x : i, y : i}
 }
}

默认值被放在了命名空间里,可以通过$.fn.shadow.default直接引用。而对$.extend()的调用也必须修改,以适应这种变化。由于现在所有对.shadow()的调用都要重用defaults映射,因此不能让他$.extend()修改它,因此要将一个空映射({})作为$.extend()的第一个参数,让这个新对象成为被修改的目标。

调用方法:

复制代码 代码如下:

jQuery.fn.shadow.defaults.slices= 10;
$("h1").shadow({
    sliceOffset : function(i){
       return { x : -i, y : i}
    }
});

7、添加选择符表达式

/*
 *添加选择符表达式
 *
 * 参数:
 *  element:当前的DOM元素,大多数选择符都需要这个
 *  index:Dom元素在结果集中的索引,这个参数对:eq()和:lt()等选择符比较有用
 *  matches:包含解析当前选择符的正则表达式结果的数组。通常matches[3]是这个数组中
 *    唯一有用的项;对于:a(b)形式的选择符而言,matches[3]项中包含着b,即圆括号中的
 *    文本。
 *  set:到目前为止匹配的整个DOM元素的集合,这个参数用的比较少。
 *
 */
jQuery.extend(jQuery.expr[':'],{
 'css' : function(element,index,matches,set){
  //修改之后的matches[3]:width < 100
  var parts = matches[3].split("");
  var value =parseFloat(jQuery(element).css(parts[0]));
  switch(parts[1]){
   case '<' :
    return value <parseInt(parts[2]);
   case '<=' :
    return value <=parseInt(parts[2]);
   case '=' :
   case '==' :
    return value ==parseInt(parts[2]);
   case '>=' :
    return value >= parseInt(parts[2]);
   case '>' :
    return value >parseInt(parts[2]);
  }
 }
})

调用:

<divstyle="width: 500px;">Desrunt mollit anim id estlaborum</div>
<divstyle="width: 200px;">2222222</div>
<divstyle="width:30px;">33333333333333333333333</div>
<divstyle="width: 300px;">4444444444444444</div>

复制代码 代码如下:

$("div:css(width< 100)").addClass("heighlight");

希望本文所述对大家的jQuery程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery
, 插件制作
参数用法
jquery插件开发实例、jqueryzoom插件用法、jquery jsonp插件实例、jquery sly插件 实例、jquery插件用法,以便于您获取更多的相关知识。

时间: 2024-12-03 17:48:43

jQuery插件制作之参数用法实例分析_jquery的相关文章

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

  本文实例讲述了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() .

jquery siblings获取同辈元素用法实例分析_jquery

本文实例讲述了jquery siblings获取同辈元素用法.分享给大家供大家参考,具体如下: jquery siblings 用于获得匹配集合中每个元素的同胞. 语法: .siblings(selector) 注:可以通过后面的可选参数选择器(selector)进行进一步筛选. 示例: 找到每个div的所有同辈元素. <p>Hello</p> <div> <span>www.jb51.net</span> </div> <p&

JQuery中DOM事件合成用法实例分析_jquery

本文实例讲述了JQuery中DOM事件合成用法.分享给大家供大家参考.具体分析如下: jQuery有两个合成事件--hover()方法和toggle()方法,类似前面讲过的ready()方法,hover()方法和toggle()方法都属于jQuery自定义的方法. hover()方法 hover()方法的语法结构为:hover(enter,leave); hover()方法用于模拟光标悬停事件.当光标移动到元素上时,会触发指定的第1个函数(enter);当光标移出这个元素时,会触发指定的第2个函

JQuery中基础过滤选择器用法实例分析_jquery

本文实例讲述了JQuery中基础过滤选择器用法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <he

JQuery中属性过滤选择器用法实例分析_jquery

本文实例讲述了JQuery中属性过滤选择器用法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <he

jQuery插件kinMaxShow扩展效果用法实例_jquery

本文实例讲述了jQuery插件kinMaxShow扩展效果用法.分享给大家供大家参考.具体分析如下: 支付宝首页的焦点图就是用的kinMaxShow 扩展效果(前段时间支付宝使用的,不知道现在还是不是这种,另外支付宝的这个焦点图动画效果是分浏览器的,IE8及以下浏览器无动画纯静态,只是在谷歌.火狐等现代浏览器才会出现动画.) 这只是kinMaxShow扩展的一个小例子,更多效果你可以自己发挥. 代码如下: javascript 代码: <script src="js/jquery-1.10

jQuery中noConflict()用法实例分析_jquery

本文实例讲述了jQuery中noConflict()用法.分享给大家供大家参考.具体分析如下: jQuery默认使用"$"操作符,$ 符号只是 window.jQuery 对象的一个引用,jQuery.noConflict() ,这个函数将变量$的控制权让渡给第一个实现它的那个库.这有助于确保jQuery不会与其他库的$对象发生冲突.在运行这个函数后,就只能使用jQuery变量访问jQuery对象.例如,在要用到$("div p")的地方,就必须换成jQuery(&

JQuery中Ajax()的data参数类型实例分析_jquery

本文实例分析了JQuery中Ajax()的data参数类型.分享给大家供大家参考,具体如下: 前面简单分析介绍了<ajax中data传参的两种方式>,对于ajax参数传递方式有了初步的了解,这里就来进一步分析一下ajax中data参数的类型. 假如现在有这样一个表单,是添加元素用的. <form id='addForm' action='UserAdd.action' type='post'> <label for='uname'>用户名</label>:&

python动态参数用法实例分析

  本文实例讲述了python动态参数用法.分享给大家供大家参考.具体分析如下: 先来看一段代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 class Person: def __init__(self,*pros,**attrs): self.name = "jeff" self.pros = pros for (key,value) in attrs.items(): stm = "self.%s = /"%s/""% (k