1.遮罩層其實就是一個覆蓋全界面的半透明的DIV,並處理zIndex使他浮於其他元素之上,是用戶不能點擊下邊的元素,或者說點擊沒有反應。
2.在遮罩層上方在彈出一個層,由於遮罩層擋住了其他所有元素,用戶只能點擊彈出層,制造出模式窗口的假象。
廢話不多說了,直接給大家貼js代碼了。
<htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> <title>UntitledDocument</title> <script> function openDiv(newDivID) { var newMaskID = "mask"; //遮罩層id var newMaskWidth =document.body.scrollWidth;//遮罩層寬度 var newMaskHeight =document.body.scrollHeight;//遮罩層高度 //mask遮罩層 var newMask = document.createElement("div");//創建遮罩層 newMask.id = newMaskID;//設置遮罩層id newMask.style.position = "absolute";//遮罩層位置 newMask.style.zIndex = "1";//遮罩層zIndex newMask.style.width = newMaskWidth + "px";//設置遮罩層寬度 newMask.style.height = newMaskHeight + "px";//設置遮罩層高度 newMask.style.top = "0px";//設置遮罩層於上邊距離 newMask.style.left = "0px";//設置遮罩層左邊距離 newMask.style.background = "gray";//#33393C//遮罩層背景色 newMask.style.filter = "alpha(opacity=40)";//遮罩層透明度IE newMask.style.opacity = "0.40";//遮罩層透明度FF document.body.appendChild(newMask);//遮罩層添加到DOM中 window.open('http://www.baidu.com','_blank','width=500,height=260,menubar=no,toolbar=no'); //彈出子頁面,具體自用自改 //彈出層滾動居中 function newDivCenter() { newDiv.style.top = (document.body.scrollTop + document.body.clientHeight/2 - newDivHeight/2) + "px"; newDiv.style.left = (document.body.scrollLeft + document.body.clientWidth/2 - newDivWidth/2) + "px"; } if(document.all)//處理滾動事件,使彈出層始終居中 { window.attachEvent("onscroll",newDivCenter); } else { window.addEventListener('scroll',newDivCenter,false); } //關閉新圖層和mask遮罩層 var newA = document.createElement("span"); newA.href = "#"; newA.style.position = "absolute";//span位置 newA.style.left=350+ "px"; newA.innerHTML = "Close"; newA.onclick = function()//處理關閉事件 { if(document.all) { window.detachEvent("onscroll",newDivCenter); } else { window.removeEventListener('scroll',newDivCenter,false); } document.body.removeChild(newMask);//移除遮罩層 document.body.removeChild(newDiv);////移除彈出框 return false; } newDiv.appendChild(newA);//添加關閉span } </script> </head> <BODY> <a onclick="openDiv('newDiv');" style="cursor:pointer">點我點我</a> <br> username:<input type="text" name="uname"/><br> u p w d:<input type="password" name="upwd"/> <br /><br /><br /><br /><br /><br /> <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <br /><br /><br /><br /><br /><br /> <a onclick="openDiv('newDiv');" style="cursor:pointer">點我點我</a> </BODY> </html>
以上所述是小編給大家介紹的基於JavaScript如何制作遮罩層對話框 的相關知識,希望對大家有所幫助。