wangnan0 2015-07-17
之前做了一个页面,在点击了某个按钮之后,要求页面出现一个全屏遮罩,一开始使用了position:absolute来实现的。当时因为画面大小是固定的,不可以resize的,所以,没有发现问题。
最近用了同样的做法做了一个遮罩,但是画面是可以进行resize的,所以就发现了一个问题,当画面被reisze到浏览器出现了滚动条的时候,就发现,用absolute 的做法是有问题的。后来改成fixed定位就没有问题了。
以下为测试代码 ,有兴趣的童鞋可以试试看。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mask</title> <style> body { height: 1000px; } .mask1 { position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px; display: none; background: rgba(0, 0, 0, 0.4); } .mask2 { position: fixed; left: 0px; top: 0px; right: 0px; bottom: 0px; display: none; background: rgba(0, 0, 0, 0.4); } </style> <script> document.onclick = function(e) { var id = e.srcElement.id; if(id != "mask1" && id != "mask2") { document.querySelector(".mask1").style.display = "none"; document.querySelector(".mask2").style.display = "none"; } }; window.onload = function(){ document.querySelector("#mask1").onclick = function(e) { document.querySelector(".mask1").style.display = "block"; }; document.querySelector("#mask2").onclick = function(e) { document.querySelector(".mask2").style.display = "block"; }; }; </script> </head> <body> <div class="divcss5"> <button id="mask1" type="button">mask1</button> <button id="mask2" type="button">mask2</button> </div> <div class="mask1"></div> <div class="mask2"></div> </body> </html>