點選彈出居中帶有透明遮罩層視窗

admin發表於2017-12-04

本章節介紹一下如何點選一個按鈕實現彈出一個居中視窗,並且此視窗帶有半透明的遮罩層效果,此效果在當下比較流行,當然還有更為複雜的實現方式,當然效果也更為絢麗,下面介紹的程式碼能夠簡單實現此效果。

程式碼如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#fade {
  display:none;
  position:absolute;
  top:0%;
  left:0%;
  width:100%;
  height:100%;
  background-color:black;
  z-index:1001;
  -moz-opacity:0.8;
  opacity:.80;
  filter:alpha(opacity=80);
}
#light{
  display:none;
  position:absolute;
  top:25%;
  left:25%;
  width:50%;
  height:50%;
  padding:16px;
  border:3px solid orange;
  background-color:white;
  z-index:1002;
  overflow:auto;
}
</style>
<script type="text/javascript">
window.onload=function(){
   var linkbt=document.getElementById("linkbt");
   var light=document.getElementById('light');
   var fade=document.getElementById('fade');
   var closebt=document.getElementById("closebt");
   linkbt.onclick=function(){
     light.style.display='block';
     fade.style.display='block';
   }
   closebt.onclick=function(){
     light.style.display='none';
     fade.style.display='none';
   }
}
</script>
</head>
<body>
<a href="javascript:void(0)" id="linkbt"> 點選這裡開啟視窗</a>
<div id="light"><a href="javascript:void(0)" id="closebt">關閉視窗</a></div>
<div id="fade""></div>
</body>
</html>

以上程式碼實現了我們的要求,下面簡單介紹一下它的實現過程。

一.實現原理:

在預設狀態下,遮罩層和視窗都是隱藏不可見的,當點選連結之後,能夠使視窗和遮罩層顯示,並且將遮罩層設定為半透明狀態。此兩個元素都採用絕對定位同時設定居中視窗的z-index屬性值大於遮罩層,這樣就可以使其覆蓋在遮罩層之上。當點選關閉按鈕的時候,能夠將遮罩層和視窗隱藏,原理大致如此。

二.相關閱讀:

(1).透明度設定參閱CSS 透明度一章節。

(2).z-index參閱CSS z-index屬性一章節。

(3).onclick事件參閱JavaScript click事件一章節。

相關文章