JQuery 遮罩層實(shí)現(xiàn)(mask)實(shí)現(xiàn)代碼
更新時(shí)間:2010年01月09日 23:26:08 作者:
用過ExtJs的可能知道在ExtJs中集成了很多的UI元素可以很方便我們的使用。
其中有mask()和unmask()這兩個(gè)方法,這兩個(gè)方法在指定的元素上添加一個(gè)遮罩層和一個(gè)提示消息實(shí)現(xiàn),增加客戶體驗(yàn)。由于最近做項(xiàng)目的時(shí)候,發(fā)現(xiàn)有時(shí)為了使用這一兩個(gè)方法需要引入一個(gè)比較“龐大”的Extjs進(jìn)來,覺得有點(diǎn)不劃算,于是自己用jquery實(shí)現(xiàn)了一個(gè)比較簡單mask、unmask方法來實(shí)現(xiàn)該效果。大家知道jquery是一個(gè)優(yōu)秀的javascript框架,不但體積小而且使用方便,我現(xiàn)在逐漸將系統(tǒng)中使用Extjs實(shí)現(xiàn)的代碼或組建全部更換成Jquery來實(shí)現(xiàn)。好了不多說,上我的代碼,這些代碼是根據(jù)網(wǎng)上的一位朋友實(shí)現(xiàn)的documentMask基礎(chǔ)上進(jìn)行整改的。使使用上更加靈活方便了。
(沒什么技術(shù)含量,旨在為那些需要的朋友提供幫助)
(function(){
$.extend($.fn,{
mask: function(msg,maskDivClass){
this.unmask();
// 參數(shù)
var op = {
opacity: 0.8,
z: 10000,
bgcolor: '#ccc'
};
var original=$(document.body);
var position={top:0,left:0};
if(this[0] && this[0]!==window.document){
original=this;
position=original.position();
}
// 創(chuàng)建一個(gè) Mask 層,追加到對(duì)象中
var maskDiv=$('<div class="maskdivgen"> </div>');
maskDiv.appendTo(original);
var maskWidth=original.outerWidth();
if(!maskWidth){
maskWidth=original.width();
}
var maskHeight=original.outerHeight();
if(!maskHeight){
maskHeight=original.height();
}
maskDiv.css({
position: 'absolute',
top: position.top,
left: position.left,
'z-index': op.z,
width: maskWidth,
height:maskHeight,
'background-color': op.bgcolor,
opacity: 0
});
if(maskDivClass){
maskDiv.addClass(maskDivClass);
}
if(msg){
var msgDiv=$('<div style="position:absolute;border:#6593cf 1px solid; padding:2px;background:#ccca"><div style="line-height:24px;border:#a3bad9 1px solid;background:white;padding:2px 10px 2px 10px">'+msg+'</div></div>');
msgDiv.appendTo(maskDiv);
var widthspace=(maskDiv.width()-msgDiv.width());
var heightspace=(maskDiv.height()-msgDiv.height());
msgDiv.css({
cursor:'wait',
top:(heightspace/2-2),
left:(widthspace/2-2)
});
}
maskDiv.fadeIn('fast', function(){
// 淡入淡出效果
$(this).fadeTo('slow', op.opacity);
})
return maskDiv;
},
unmask: function(){
var original=$(document.body);
if(this[0] && this[0]!==window.document){
original=$(this[0]);
}
original.find("> div.maskdivgen").fadeOut('slow',0,function(){
$(this).remove();
});
}
});
})();
下面是使用實(shí)例代碼可供參考
代碼
<html>
<head>
<style>
body{
font-size:12px;
}
</style>
<script src="http://img.jb51.net/jslib/jquery/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript">
(function(){
$.extend($.fn,{
mask: function(msg,maskDivClass){
this.unmask();
// 參數(shù)
var op = {
opacity: 0.8,
z: 10000,
bgcolor: '#ccc'
};
var original=$(document.body);
var position={top:0,left:0};
if(this[0] && this[0]!==window.document){
original=this;
position=original.position();
}
// 創(chuàng)建一個(gè) Mask 層,追加到對(duì)象中
var maskDiv=$('<div class="maskdivgen"> </div>');
maskDiv.appendTo(original);
var maskWidth=original.outerWidth();
if(!maskWidth){
maskWidth=original.width();
}
var maskHeight=original.outerHeight();
if(!maskHeight){
maskHeight=original.height();
}
maskDiv.css({
position: 'absolute',
top: position.top,
left: position.left,
'z-index': op.z,
width: maskWidth,
height:maskHeight,
'background-color': op.bgcolor,
opacity: 0
});
if(maskDivClass){
maskDiv.addClass(maskDivClass);
}
if(msg){
var msgDiv=$('<div style="position:absolute;border:#6593cf 1px solid; padding:2px;background:#ccca"><div style="line-height:24px;border:#a3bad9 1px solid;background:white;padding:2px 10px 2px 10px">'+msg+'</div></div>');
msgDiv.appendTo(maskDiv);
var widthspace=(maskDiv.width()-msgDiv.width());
var heightspace=(maskDiv.height()-msgDiv.height());
msgDiv.css({
cursor:'wait',
top:(heightspace/2-2),
left:(widthspace/2-2)
});
}
maskDiv.fadeIn('fast', function(){
// 淡入淡出效果
$(this).fadeTo('slow', op.opacity);
})
return maskDiv;
},
unmask: function(){
var original=$(document.body);
if(this[0] && this[0]!==window.document){
original=$(this[0]);
}
original.find("> div.maskdivgen").fadeOut('slow',0,function(){
$(this).remove();
});
}
});
})();
</script>
</head>
<body style="width:100%">
測(cè)試
<div id="test" style="width:200px;height:100px; border:black 1px solid;">
</div>
<a href="#" onclick="$('#test').mask('DIV層遮罩')">div遮罩</a>
<a href="#" onclick="$('#test').unmask()">關(guān)閉div遮罩</a>
<a href="#" onclick="$(document).mask('全屏遮罩').click(function(){$(document).unmask()})">全部遮罩</a>
</body>
</html>
(沒什么技術(shù)含量,旨在為那些需要的朋友提供幫助)
復(fù)制代碼 代碼如下:
(function(){
$.extend($.fn,{
mask: function(msg,maskDivClass){
this.unmask();
// 參數(shù)
var op = {
opacity: 0.8,
z: 10000,
bgcolor: '#ccc'
};
var original=$(document.body);
var position={top:0,left:0};
if(this[0] && this[0]!==window.document){
original=this;
position=original.position();
}
// 創(chuàng)建一個(gè) Mask 層,追加到對(duì)象中
var maskDiv=$('<div class="maskdivgen"> </div>');
maskDiv.appendTo(original);
var maskWidth=original.outerWidth();
if(!maskWidth){
maskWidth=original.width();
}
var maskHeight=original.outerHeight();
if(!maskHeight){
maskHeight=original.height();
}
maskDiv.css({
position: 'absolute',
top: position.top,
left: position.left,
'z-index': op.z,
width: maskWidth,
height:maskHeight,
'background-color': op.bgcolor,
opacity: 0
});
if(maskDivClass){
maskDiv.addClass(maskDivClass);
}
if(msg){
var msgDiv=$('<div style="position:absolute;border:#6593cf 1px solid; padding:2px;background:#ccca"><div style="line-height:24px;border:#a3bad9 1px solid;background:white;padding:2px 10px 2px 10px">'+msg+'</div></div>');
msgDiv.appendTo(maskDiv);
var widthspace=(maskDiv.width()-msgDiv.width());
var heightspace=(maskDiv.height()-msgDiv.height());
msgDiv.css({
cursor:'wait',
top:(heightspace/2-2),
left:(widthspace/2-2)
});
}
maskDiv.fadeIn('fast', function(){
// 淡入淡出效果
$(this).fadeTo('slow', op.opacity);
})
return maskDiv;
},
unmask: function(){
var original=$(document.body);
if(this[0] && this[0]!==window.document){
original=$(this[0]);
}
original.find("> div.maskdivgen").fadeOut('slow',0,function(){
$(this).remove();
});
}
});
})();
下面是使用實(shí)例代碼可供參考
代碼
復(fù)制代碼 代碼如下:
<html>
<head>
<style>
body{
font-size:12px;
}
</style>
<script src="http://img.jb51.net/jslib/jquery/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript">
(function(){
$.extend($.fn,{
mask: function(msg,maskDivClass){
this.unmask();
// 參數(shù)
var op = {
opacity: 0.8,
z: 10000,
bgcolor: '#ccc'
};
var original=$(document.body);
var position={top:0,left:0};
if(this[0] && this[0]!==window.document){
original=this;
position=original.position();
}
// 創(chuàng)建一個(gè) Mask 層,追加到對(duì)象中
var maskDiv=$('<div class="maskdivgen"> </div>');
maskDiv.appendTo(original);
var maskWidth=original.outerWidth();
if(!maskWidth){
maskWidth=original.width();
}
var maskHeight=original.outerHeight();
if(!maskHeight){
maskHeight=original.height();
}
maskDiv.css({
position: 'absolute',
top: position.top,
left: position.left,
'z-index': op.z,
width: maskWidth,
height:maskHeight,
'background-color': op.bgcolor,
opacity: 0
});
if(maskDivClass){
maskDiv.addClass(maskDivClass);
}
if(msg){
var msgDiv=$('<div style="position:absolute;border:#6593cf 1px solid; padding:2px;background:#ccca"><div style="line-height:24px;border:#a3bad9 1px solid;background:white;padding:2px 10px 2px 10px">'+msg+'</div></div>');
msgDiv.appendTo(maskDiv);
var widthspace=(maskDiv.width()-msgDiv.width());
var heightspace=(maskDiv.height()-msgDiv.height());
msgDiv.css({
cursor:'wait',
top:(heightspace/2-2),
left:(widthspace/2-2)
});
}
maskDiv.fadeIn('fast', function(){
// 淡入淡出效果
$(this).fadeTo('slow', op.opacity);
})
return maskDiv;
},
unmask: function(){
var original=$(document.body);
if(this[0] && this[0]!==window.document){
original=$(this[0]);
}
original.find("> div.maskdivgen").fadeOut('slow',0,function(){
$(this).remove();
});
}
});
})();
</script>
</head>
<body style="width:100%">
測(cè)試
<div id="test" style="width:200px;height:100px; border:black 1px solid;">
</div>
<a href="#" onclick="$('#test').mask('DIV層遮罩')">div遮罩</a>
<a href="#" onclick="$('#test').unmask()">關(guān)閉div遮罩</a>
<a href="#" onclick="$(document).mask('全屏遮罩').click(function(){$(document).unmask()})">全部遮罩</a>
</body>
</html>
您可能感興趣的文章:
- JS遮罩層效果 兼容ie firefox jQuery遮罩層
- jQuery操作dom實(shí)現(xiàn)彈出頁面遮罩層(web端和移動(dòng)端阻止遮罩層的滑動(dòng))
- jQuery阻止移動(dòng)端遮罩層后頁面滾動(dòng)
- jQuery實(shí)現(xiàn)簡單網(wǎng)頁遮罩層/彈出層效果兼容IE6、IE7
- Jquery實(shí)現(xiàn)遮罩層的簡單實(shí)例(就是彈出DIV周圍都灰色不能操作)
- jQuery+AJAX實(shí)現(xiàn)遮罩層登錄驗(yàn)證界面(附源碼)
- jQuery點(diǎn)擊按鈕彈出遮罩層且內(nèi)容居中特效
- Jquery實(shí)現(xiàn)遮罩層的方法
- jQuery實(shí)現(xiàn)彈出帶遮罩層的居中浮動(dòng)窗口效果
- jQuery實(shí)現(xiàn)打開網(wǎng)頁自動(dòng)彈出遮罩層或點(diǎn)擊彈出遮罩層功能示例
- JavaScript實(shí)現(xiàn)的彈出遮罩層特效經(jīng)典示例【基于jQuery】
相關(guān)文章
jQuery實(shí)現(xiàn)的3D版圖片輪播示例【滑動(dòng)輪播】
這篇文章主要介紹了jQuery實(shí)現(xiàn)的3D版圖片輪播,涉及jQuery針對(duì)頁面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-01-01
CSS3結(jié)合jQuery實(shí)現(xiàn)動(dòng)畫效果及回調(diào)函數(shù)的實(shí)例
下面小編就為大家分享一篇CSS3結(jié)合jQuery實(shí)現(xiàn)動(dòng)畫效果及回調(diào)函數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
實(shí)用的Jquery選項(xiàng)卡TAB示例代碼
Jquery選項(xiàng)卡想必大家并不陌生,本文為大家介紹個(gè)比較實(shí)用的jquery TAB選項(xiàng)卡,喜歡的朋友可以學(xué)習(xí)下2013-08-08
JQuery實(shí)現(xiàn)Ajax加載圖片的方法
這篇文章主要介紹了JQuery實(shí)現(xiàn)Ajax加載圖片的方法,涉及jQuery基于緩存獲取圖片的技巧,需要的朋友可以參考下2015-12-12
利用Jquery實(shí)現(xiàn)幾款漂亮實(shí)用的時(shí)間軸(附示例代碼)
這篇文章主要介紹了利用Jquery實(shí)現(xiàn)幾款漂亮的時(shí)間軸示例代碼,文中利用Jquery實(shí)現(xiàn)了縱向折疊時(shí)間軸、縱向鼠標(biāo)滑動(dòng)時(shí)間軸、縱向可折疊時(shí)間軸以及橫向時(shí)間軸,每種時(shí)間軸都給出了完整的示例代碼,需要的朋友可以參考學(xué)習(xí)。2017-02-02
jQGrid Table操作列中點(diǎn)擊【操作】按鈕彈出按鈕層的實(shí)現(xiàn)代碼
在使用JqGrid時(shí),Table中最后一列是操作列,在操作列中每一行都有一個(gè)操作按鈕,該操作按鈕和下拉菜單非常類似,下面給大家分享jQGrid Table操作列中點(diǎn)擊【操作】按鈕彈出按鈕層的實(shí)現(xiàn)代碼,非常不錯(cuò),感興趣的朋友一起學(xué)習(xí)吧2016-12-12
jquery 禁止鼠標(biāo)右鍵并監(jiān)聽右鍵事件
本篇文章主要介紹了jquery禁止鼠標(biāo)右鍵并監(jiān)聽右鍵事件的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04
jQuery移除元素自動(dòng)解綁事件實(shí)現(xiàn)思路及代碼
用jQuery將元素移除的基本方法常用的有三個(gè),一個(gè)是remove()方法,一個(gè)是html()方法,一個(gè)是empty()方法2014-05-05

