帶有滾動條的全屏遮罩層程式碼例項

antzone發表於2017-03-23

半透明的遮罩層現在的應用非常的廣泛,比如彈出一個提示視窗以防止對其他內容進行操作等等。

但是可能有不少朋友遇到這樣的問題,就是當網頁出現滾動條的時候,超出的內容部分不會被遮罩層覆蓋,這樣的效果當然是有問題,下面就通過例項程式碼介紹一下如何讓遮罩層覆蓋整個頁面。

程式碼例項:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html><html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
*{
  margin:0px;
  padding:0px;
} 
body{height:1000px;} 
.dialog-wrap{display:none;} 
.dialog-wrap{
  position:absolute; 
  top:0px; 
  left:0px; 
  width:100%; 
  z-index:99; 
  background:#000; 
} 
</style> 
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  function dialog(){ 
    var h=$('body').height(); 
    $('.dialog-wrap').css({
      'height':h,
      'opacity':0.5,
      'display':'block'
    }); 
  } 
  $("#bt").click(function(){
    dialog();
  })
}) 
</script> 
</head> 
<body> 
<div class="dialog-wrap"></div>
<input type="button" id="bt" value="檢視效果"/>
</body> 
</html>

程式碼實現了我們的要求,即便是有滾動條,遮罩層也能夠覆蓋超出視窗的內容,下面介紹一下它的實現過程。程式碼註釋:

1.$(document).ready(function(){}),當dom結構載入完畢再去執行函式中的程式碼。

2.function dialog(){ 

  var h=$('body').height(); 

  $('.dialog-wrap').css({

    'height':h,

    'opacity':0.5,

    'display':'block'

  }); 

  }

上面的程式碼就是設定遮罩層的樣式,之所以超出視窗尺寸的網頁部分也可以被遮罩層覆蓋,就是因為將遮罩層的高度設定為body的高度,'opacity':0.5將遮罩層設定為半透明, 'display':'block'將遮罩層設定為可見。

3.$("#bt").click(function(){dialog();}),為按鈕註冊click事件處理函式,點選按鈕可以呼叫dialog()函式。

相關文章