可以防止滾動條影響的全屏遮罩效果:遮罩效果當前在很多應用中都有使用,當然也比較簡單,無非是在需要的時候出現一個具有透明效果的全屏元素,但是有一種情況需要特別註意一下,那就是頁面出現滾動條的時候,這個時候如不進行一下處理,遮罩層效果的表現可能不倫不類。代碼如下:螞蟻部落 螞蟻部...
可以防止滾動條影響的全屏遮罩效果:
遮罩效果當前在很多應用中都有使用,當然也比較簡單,無非是在需要的時候出現一個具有透明效果的全屏元素,但是有一種情況需要特別註意一下,那就是頁面出現滾動條的時候,這個時候如不進行一下處理,遮罩層效果的表現可能不倫不類。
代碼如下:
<!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; } .zhezhao{ width:100%; height:100%; background-color:#000; filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5; position:absolute; left:0px; top:0px; display:none; z-index:1000; } .login{ width:280px; height:180px; position:absolute; top:200px; left:50%; background-color:#000; margin-left:-140px; display:none; z-index:1500; text-align:right; } .content{ margin-top:50px; color:red; line-height:200px; height:200px; text-align:center; } </style> <script type="text/javascript"> window.onload=function(){ var zhezhao=document.getElementById("zhezhao"); var login=document.getElementById("login"); var bt=document.getElementById("bt"); var btclose=document.getElementById("btclose"); bt.onclick=function(){ zhezhao.style.display="block"; login.style.display="block"; } btclose.onclick=function(){ zhezhao.style.display="none"; login.style.display="none"; } } </script> </head> <body style="height:1000px;"> <div class="zhezhao" id="zhezhao"></div> <div class="login" id="login"><input type="button" id="btclose" value="點擊關閉"/></div> <div class="content">螞蟻部落歡迎您,<input type="button" value="查看效果" id="bt"/></div> </body> </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; } html{height:100%} .zhezhao{ width:100%; height:100%; background-color:#000; filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5; position:absolute; left:0px; top:0px; display:none; z-index:1000; } .login{ width:280px; height:180px; position:absolute; top:200px; left:50%; background-color:#000; margin-left:-140px; display:none; z-index:1500; text-align:right; } .content{ margin-top:50px; color:red; line-height:200px; height:200px; text-align:center; } #middle{ width:30px; height:1000px; margin:0px auto; background:red; } </style> <script type="text/javascript"> window.onload=function(){ var zhezhao=document.getElementById("zhezhao"); var login=document.getElementById("login"); var bt=document.getElementById("bt"); var btclose=document.getElementById("btclose"); bt.onclick=function(){ zhezhao.style.display="block"; login.style.display="block"; document.body.style.height="100%"; document.body.style.overflow="hidden"; } btclose.onclick=function(){ zhezhao.style.display="none"; login.style.display="none"; document.body.style.height=""; document.body.style.overflow=""; } } </script> </head> <body> <div class="zhezhao" id="zhezhao"></div> <div class="login" id="login"><input type="button" id="btclose" value="點擊關閉"/></div> <div class="content">螞蟻部落歡迎您,<input type="button" value="查看效果" id="bt"/></div> <div id="middle"></div> </body> </html>
在上面的代碼中,當點擊按鈕彈出遮罩層的時候設置body的高度為100%,設置值為100%可以使body的高度和瀏覽器客戶區的高度相同,然後設置overflow屬性值為hidden,這樣的話超出的部分就會被隱藏,於是彈出遮罩層的話,也就不會出現滾動條了,點擊關閉遮罩層的時候,再將一切恢複原狀。需要特別註意的是css中添加瞭如下代碼:
html{height:100%}
具體相關內容可以參閱設置html,body高度100%的作用一章節。
原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=14507
更多內容可以參閱:http://www.softwhy.com/divcss/