jQuery插件制作之參數(shù)用法實(shí)例分析
本文實(shí)例講述了jQuery插件制作之參數(shù)用法。分享給大家供大家參考。具體分析如下:
1、無參數(shù)實(shí)現(xiàn)文字陰影效果
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");
}
})
}
調(diào)用的例子:
2、簡單的參數(shù)
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");
}
})
}
調(diào)用的例子:
3、參數(shù)的映射
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");
}
})
}
調(diào)用的例子:
slices : 5,
opacity : 0.25,
zIndex : -1
});
4、默認(rèn)的參數(shù)值(這個(gè)是最重要的)
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");
}
})
}
調(diào)用的例子:
opacity : 0.05
});
5、回調(diào)函數(shù)
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++){
//調(diào)用回調(diào)函數(shù)
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");
}
})
}
調(diào)用的例子:
sliceOffset : function(i){
return {x : -i,y : -2 * i}
}
});
6、可定制的默認(rèn)值
jQuery.fn.shadow =function(options){
//默認(rèn)值被放在投影插件的命名空間里了
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++){
//調(diào)用回調(diào)函數(shù)
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}
}
}
默認(rèn)值被放在了命名空間里,可以通過$.fn.shadow.default直接引用。而對$.extend()的調(diào)用也必須修改,以適應(yīng)這種變化。由于現(xiàn)在所有對.shadow()的調(diào)用都要重用defaults映射,因此不能讓他$.extend()修改它,因此要將一個(gè)空映射({})作為$.extend()的第一個(gè)參數(shù),讓這個(gè)新對象成為被修改的目標(biāo)。
調(diào)用方法:
$("h1").shadow({
sliceOffset : function(i){
return { x : -i, y : i}
}
});
7、添加選擇符表達(dá)式
/*
*添加選擇符表達(dá)式
*
* 參數(shù):
* element:當(dāng)前的DOM元素,大多數(shù)選擇符都需要這個(gè)
* index:Dom元素在結(jié)果集中的索引,這個(gè)參數(shù)對:eq()和:lt()等選擇符比較有用
* matches:包含解析當(dāng)前選擇符的正則表達(dá)式結(jié)果的數(shù)組。通常matches[3]是這個(gè)數(shù)組中
* 唯一有用的項(xiàng);對于:a(b)形式的選擇符而言,matches[3]項(xiàng)中包含著b,即圓括號中的
* 文本。
* set:到目前為止匹配的整個(gè)DOM元素的集合,這個(gè)參數(shù)用的比較少。
*
*/
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]);
}
}
})
調(diào)用:
<divstyle="width: 500px;">Desrunt mollit anim id estlaborum</div> <divstyle="width: 200px;">2222222</div> <divstyle="width:30px;">33333333333333333333333</div> <divstyle="width: 300px;">4444444444444444</div>
希望本文所述對大家的jQuery程序設(shè)計(jì)有所幫助。
- JQuery插件jcarousellite的參數(shù)中文說明
- Jquery圖形報(bào)表插件 jqplot簡介及參數(shù)詳解
- idTabs基于JQuery的根據(jù)URL參數(shù)選擇Tab插件
- JQuery擴(kuò)展插件Validate 3通過參數(shù)設(shè)置錯(cuò)誤信息
- jQuery獲取地址欄參數(shù)插件(模仿C#)
- jQuery 獲取URL參數(shù)的插件
- jQuery插件制作之全局函數(shù)用法實(shí)例
- jquery插件制作 提示框插件實(shí)現(xiàn)代碼
- jquery插件制作簡單示例說明
- jquery tab插件制作實(shí)現(xiàn)代碼
相關(guān)文章
把jquery 的dialog和ztree結(jié)合實(shí)現(xiàn)步驟
首先準(zhǔn)備好juqury-ui、ztree 的js文件和css 文件,接下來的步驟祥看本文希望對大家有所幫助2013-08-08
JQuery自定義事件的應(yīng)用 JQuery最佳實(shí)踐
本文主要介紹JQuery框架里面支持的自定義事件模型,通過實(shí)例說明什么時(shí)候可以利用事件模型進(jìn)行面向?qū)ο蟮腏S編程,以及利用“帶命名空間的事件處理函數(shù)”來避免unbind時(shí)影響別的事件訂閱。2010-08-08
50 個(gè) jQuery 插件可將你的網(wǎng)站帶到另外一個(gè)高度
Query架構(gòu)的開發(fā)人員能夠創(chuàng)建一個(gè)插件代碼來擴(kuò)展其功能,從而能夠產(chǎn)生一些最好的插件,讓你的網(wǎng)站或任何給定的項(xiàng)目達(dá)到一個(gè)全新的水平。2016-04-04
使用BootStrap和Metroui設(shè)計(jì)的metro風(fēng)格微網(wǎng)站或手機(jī)app界面
今天使用bootstrap和metroui設(shè)計(jì)了一個(gè)metro風(fēng)格的移動app或者微信微網(wǎng)站的界面,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友可以參考下2016-10-10
jQuery插件實(shí)現(xiàn)表格隔行換色且感應(yīng)鼠標(biāo)高亮行變色
實(shí)現(xiàn)表格隔行換色,且感應(yīng)鼠標(biāo)行變色的方法有很多,在本文將為大家介紹的是使用jQuery插件來實(shí)現(xiàn),具體如下,感興趣的朋友可以練練手2013-09-09
使用jQuery的load方法設(shè)計(jì)動態(tài)加載及解決被加載頁面js失效問題
這篇文章主要介紹了使用jQuery的load方法設(shè)計(jì)動態(tài)加載及解決被加載頁面js失效問題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
基于JQuery實(shí)現(xiàn)的類似購物商城的購物車
使用JQuery Clone 模板來實(shí)現(xiàn)商品信息的展示,展現(xiàn)形式可以通過修改模板中的td來確定每一行顯示多少個(gè)商品信息2011-12-12

