国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

jquery實(shí)現(xiàn)簡(jiǎn)單的遮罩層

2024-05-06 16:27:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了jquery實(shí)現(xiàn)簡(jiǎn)單的遮罩層相關(guān)代碼,內(nèi)容很豐富,教大家實(shí)現(xiàn)遮罩層效果,感興趣的小伙伴們可以參考一下
 

本文實(shí)例講解了jquery遮罩層,包括遮罩層的不同樣式實(shí)現(xiàn)、mask實(shí)現(xiàn)遮罩層等,分享給大家供大家參考,具體內(nèi)容如下

一、jQuery實(shí)現(xiàn)遮罩層的不同樣式
1.1 背景半透明遮罩層樣式
需要一個(gè)黑色(當(dāng)然也可以其他)背景,且須設(shè)置為絕對(duì)定位,以下是項(xiàng)目中用到的css樣式:

/* 半透明的遮罩層 */#overlay {  background: #000;  filter: alpha(opacity=50); /* IE的透明度 */  opacity: 0.5; /* 透明度 */  display: none;  position: absolute;  top: 0px;  left: 0px;  width: 100%;  height: 100%;  z-index: 100; /* 此處的圖層要大于頁(yè)面 */  display:none;}

1.2 jQuery實(shí)現(xiàn)遮罩

/* 顯示遮罩層 */function showOverlay() {  $("#overlay").height(pageHeight());  $("#overlay").width(pageWidth());  // fadeTo第一個(gè)參數(shù)為速度,第二個(gè)為透明度  // 多重方式控制透明度,保證兼容性,但也帶來(lái)修改麻煩的問(wèn)題  $("#overlay").fadeTo(200, 0.5);}/* 隱藏覆蓋層 */function hideOverlay() {  $("#overlay").fadeOut(200);}/* 當(dāng)前頁(yè)面高度 */function pageHeight() {  return document.body.scrollHeight;}/* 當(dāng)前頁(yè)面寬度 */function pageWidth() {  return document.body.scrollWidth;}

1.3 提示框
遮罩的目的無(wú)非讓人無(wú)法操作內(nèi)容,突出提示框,而提示框可參考上面的制作,z-index比遮罩層更高便可。主要問(wèn)題是,如何控制提示框在瀏覽器居中。

/* 定位到頁(yè)面中心 */function adjust(id) {  var w = $(id).width();  var h = $(id).height();    var t = scrollY() + (windowHeight()/2) - (h/2);  if(t < 0) t = 0;    var l = scrollX() + (windowWidth()/2) - (w/2);  if(l < 0) l = 0;    $(id).css({left: l+'px', top: t+'px'});}//瀏覽器視口的高度f(wàn)unction windowHeight() {  var de = document.documentElement;  return self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;}//瀏覽器視口的寬度f(wàn)unction windowWidth() {  var de = document.documentElement;  return self.innerWidth || (de && de.clientWidth) || document.body.clientWidth}/* 瀏覽器垂直滾動(dòng)位置 */function scrollY() {  var de = document.documentElement;  return self.pageYOffset || (de && de.scrollTop) || document.body.scrollTop;}/* 瀏覽器水平滾動(dòng)位置 */function scrollX() {  var de = document.documentElement;  return self.pageXOffset || (de && de.scrollLeft) || document.body.scrollLeft;}

二、Jquery超簡(jiǎn)單遮罩層實(shí)現(xiàn)代碼
在開(kāi)發(fā)中,為了避免二次提交,遮罩層的運(yùn)用越來(lái)越普遍
看了很多代碼,下面跟大家分享一下我認(rèn)為最簡(jiǎn)單的遮罩層實(shí)現(xiàn)方式:
1.樣式如下設(shè)置:
CSS代碼:

<style type="text/css">     .mask {          position: absolute; top: 0px; filter: alpha(opacity=60); background-color: #777;         z-index: 1002; left: 0px;         opacity:0.5; -moz-opacity:0.5;       }   </style>  

其中:opacity:0.5;適用于IE, -moz-opacit:0.5;適用于火狐;你只需要都加上,便可以火狐和IE下都可以使用。
2.指定層的高度、和寬度
js代碼

<pre class="html" name="code"><script type="text/javascript">     //兼容火狐、IE8    //顯示遮罩層    function showMask(){       $("#mask").css("height",$(document).height());       $("#mask").css("width",$(document).width());       $("#mask").show();     }   //隱藏遮罩層   function hideMask(){            $("#mask").hide();     }    </script> 

3.在<body>中加入如下代碼,然后就可以看到效果

html代碼

<div id="mask" class="mask"></div>  <a href="javascript:;" onclick="showMask()" >點(diǎn)我顯示遮罩層</a><br /> 

4.使用方法
在ajax提交表單后,加上showMask方法,數(shù)據(jù)返回后,加上hideMask()
需要的親們可以根據(jù)自己需求,在遮罩層上面加一些提示信息

三、發(fā)布個(gè)JQuery的遮罩層實(shí)現(xiàn)(mask)

用過(guò)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)來(lái),覺(jué)得有點(diǎn)不劃算,于是自己用jquery實(shí)現(xiàn)了一個(gè)比較簡(jiǎn)單mask、unmask方法來(lái)實(shí)現(xiàn)該效果。大家知道jquery是一個(gè)優(yōu)秀的javascript框架,不但體積小而且使用方便,我現(xiàn)在逐漸將系統(tǒng)中使用Extjs實(shí)現(xiàn)的代碼或組建全部更換成Jquery來(lái)實(shí)現(xiàn)。好了不多說(shuō),上我的代碼,這些代碼是根據(jù)網(wǎng)上的一位朋友實(shí)現(xiàn)的documentMask基礎(chǔ)上進(jìn)行整改的,使用上更加靈活方便了。

(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="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>

以上就是jquery實(shí)現(xiàn)遮罩層的全部?jī)?nèi)容介紹,希望對(duì)大家的學(xué)習(xí)有所幫助。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 北碚区| 鞍山市| 博爱县| 蓝田县| 伊川县| 嫩江县| 武威市| 孟津县| 余庆县| 堆龙德庆县| 通海县| 寿阳县| 寿宁县| 安仁县| 衡东县| 贵港市| 体育| 泽普县| 喀什市| 扶风县| 连城县| 定边县| 东台市| 庆安县| 祁东县| 鄯善县| 延津县| 康乐县| 龙泉市| 电白县| 盐亭县| 杨浦区| 万盛区| 称多县| 奇台县| 牟定县| 桂平市| 淳安县| 普宁市| 同江市| 美姑县|