function init() {
// 获取文档尺寸
var documentSize = getDocumentSize()
// 获取视窗尺寸
var windowSize = getWindowSize()
// 对比大小,取大值
var pageWidth = documentSize.x >windowSize.x ? documentSize.x : windowSize.x
var pageHeight = documentSize.y >windowSize.y ? documentSize.y : windowSize.y
// 底层DIV(用于遮挡其他元素)
var mask = document.createElement("div")
mask.id = "login_mask"
setStyle(mask, 'left', 0)
setStyle(mask, 'top', 0)
setStyle(mask, 'background', '#000000')
setStyle(mask, 'width', pageWidth+'px')
setStyle(mask, 'height', pageHeight+'px')
setStyle(mask, 'position', 'absolute')
setStyle(mask, 'filter', 'Alpha(opacity=40)')
setStyle(mask, '-moz-opacity', '0.4')
setStyle(mask, 'opacity', '0.4')
setStyle(mask, 'zIndex', 100)
// 底层ifreme(用于挡住select下拉框等普通DIV无法遮挡的元素)
var iframe = document.createElement("iframe")
iframe.id = "login_iframe"
setStyle(iframe, 'left', 0)
setStyle(iframe, 'top', 0)
setStyle(iframe, 'background', '#000000')
setStyle(iframe, 'width', pageWidth+'px')
setStyle(iframe, 'height', pageHeight+'px')
setStyle(iframe, 'position', 'absolute')
setStyle(iframe, 'filter', 'Alpha(opacity=0)')
setStyle(iframe, '-moz-opacity', '0')
setStyle(iframe, 'opacity', '0')
setStyle(iframe, 'zIndex', 99)
document.body.appendChild(iframe)
document.body.appendChild(mask)
// 弹出DIV
var popDiv = document.createElement("div")
var popTop = 100
var popLeft = 100
setStyle(popDiv, 'left', '100px')
setStyle(popDiv, 'top', '200px')
setStyle(popDiv, 'width', '300px')
setStyle(popDiv, 'height', '200px')
setStyle(popDiv, 'background', '#FFF')
setStyle(popDiv, 'zIndex', 1000)
setStyle(popDiv, 'display', 'block')
setStyle(popDiv, 'position', 'absolute')
document.body.appendChild(popDiv)
}
function getWindowSize() {
var client = {
x:0,
y:0
}
if(typeof document.compatMode != 'undefined' &&document.compatMode == 'CSS1Compat') {
client.x = document.documentElement.clientWidth
client.y = document.documentElement.clientHeight
} else if (typeof document.body != 'undefined') {
client.x = document.body.clientWidth
client.y = document.body.clientHeight
}
return client
}
function getDocumentSize() {
var doc = {
x:0,
y:0
}
doc.x = document.body.scrollWidth
doc.y = document.body.scrollHeight
return doc
}
function setStyle(element, key, value) {
element.style[key] = value
}
</script>
<body onload="init()">
使用css创建:将这个需要覆盖全部页面的半透明容器相对与文档绝对定位,然后设置其宽度高度均为均为100%即可,缺点是容器总是覆盖当前状态下浏览器视口的面积,如果此时调整浏览器宽度或高度为更大值则出现非覆盖区。
JavaScript创建:
先用css进行透明层定位,同上.然后使用bom语句获取当前视口的宽度和高度然后将获取的值分别付给半透明容器的宽度和高度,并创建一个onresize事件函数,一旦用户改变浏览器窗口大小则从新读取这些值,这样即可保证任何情况下均能完全覆盖