亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

jquery實現(xiàn)簡單的遮罩層

 更新時間:2016年01月08日 11:51:06   投稿:lijiao  
這篇文章主要介紹了jquery實現(xiàn)簡單的遮罩層相關代碼,內(nèi)容很豐富,教大家實現(xiàn)遮罩層效果,感興趣的小伙伴們可以參考一下

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

一、jQuery實現(xiàn)遮罩層的不同樣式
1.1 背景半透明遮罩層樣式
需要一個黑色(當然也可以其他)背景,且須設置為絕對定位,以下是項目中用到的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; /* 此處的圖層要大于頁面 */
  display:none;
}

1.2 jQuery實現(xiàn)遮罩

/* 顯示遮罩層 */
function showOverlay() {
  $("#overlay").height(pageHeight());
  $("#overlay").width(pageWidth());

  // fadeTo第一個參數(shù)為速度,第二個為透明度
  // 多重方式控制透明度,保證兼容性,但也帶來修改麻煩的問題
  $("#overlay").fadeTo(200, 0.5);
}

/* 隱藏覆蓋層 */
function hideOverlay() {
  $("#overlay").fadeOut(200);
}

/* 當前頁面高度 */
function pageHeight() {
  return document.body.scrollHeight;
}

/* 當前頁面寬度 */
function pageWidth() {
  return document.body.scrollWidth;
}

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

/* 定位到頁面中心 */
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'});
}

//瀏覽器視口的高度
function windowHeight() {
  var de = document.documentElement;

  return self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
}

//瀏覽器視口的寬度
function windowWidth() {
  var de = document.documentElement;

  return self.innerWidth || (de && de.clientWidth) || document.body.clientWidth
}

/* 瀏覽器垂直滾動位置 */
function scrollY() {
  var de = document.documentElement;

  return self.pageYOffset || (de && de.scrollTop) || document.body.scrollTop;
}

/* 瀏覽器水平滾動位置 */
function scrollX() {
  var de = document.documentElement;

  return self.pageXOffset || (de && de.scrollLeft) || document.body.scrollLeft;
}

二、Jquery超簡單遮罩層實現(xiàn)代碼
在開發(fā)中,為了避免二次提交,遮罩層的運用越來越普遍
看了很多代碼,下面跟大家分享一下我認為最簡單的遮罩層實現(xiàn)方式:
1.樣式如下設置:
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()" >點我顯示遮罩層</a><br /> 

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

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

用過ExtJs的可能知道在ExtJs中集成了很多的UI元素可以很方便我們的使用。其中有mask()和unmask()這兩個方法,這兩個方法在指定的元素上添加一個遮罩層和一個提示消息實現(xiàn),增加客戶體驗。由于最近做項目的時候,發(fā)現(xiàn)有時為了使用這一兩個方法需要引入一個比較“龐大”的Extjs進來,覺得有點不劃算,于是自己用jquery實現(xiàn)了一個比較簡單mask、unmask方法來實現(xiàn)該效果。大家知道jquery是一個優(yōu)秀的javascript框架,不但體積小而且使用方便,我現(xiàn)在逐漸將系統(tǒng)中使用Extjs實現(xiàn)的代碼或組建全部更換成Jquery來實現(xiàn)。好了不多說,上我的代碼,這些代碼是根據(jù)網(wǎng)上的一位朋友實現(xiàn)的documentMask基礎上進行整改的,使用上更加靈活方便了。

(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)建一個 Mask 層,追加到對象中
        var maskDiv=$('<div class="maskdivgen">&nbsp;</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();
           });
      }
    });
  })();

下面是使用實例代碼可供參考

<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)建一個 Mask 層,追加到對象中
        var maskDiv=$('<div class="maskdivgen">&nbsp;</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%">
    
    測試
  <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()">關閉div遮罩</a>
  <a href="#" onclick="$(document).mask('全屏遮罩').click(function(){$(document).unmask()})">全部遮罩</a>
  </body>
</html>

以上就是jquery實現(xiàn)遮罩層的全部內(nèi)容介紹,希望對大家的學習有所幫助。

相關文章

最新評論