動態在dom節點上添加透明遮罩層
1.獲取dom節點距離瀏覽器上邊和左邊的距離,即offsetTop和offsetLeft
2.使用offsetWidth,offsetHeight獲取dom節點實際的寬和高,即使dom節點的樣式中有padding和border
3.使用dom.style.cssText給節點增加樣式
<script>
functionsetMask(dom,opacity) {
// 先獲取傳入節點距離window的距離
var left = dom.offsetLeft;
var top = dom.offsetTop;
var width = dom.offsetWidth;
var height = dom.offsetHeight;
var opacity = opacity ||0.2;
var newElem =document.createElement("div");
newElem.style.cssText="width:200px;height:200px;left:"+left+"px;top:"+top+"px;opacity:"+opacity+";background-color:#fff;"
document.getElementsByTagName('body')[0].appendChild(newElem);
}
var target =document.getElementById('box');
setMask(target,0.3);
</script>
效果圖:
底層盒子是粉色的,有一個黑色的邊框
無遮罩.jpg
加入白色遮罩
遮罩層.jpg