CSS样式名:
position:absolute ,
top:文档高度/2-弹出DIV高度/2 px
left:文档宽度/2-弹出DIV宽度/2 px
这样的算法 就能够把弹出的DIV 位置 设置为 页面的中部
DIV+CSS不能够完全的控制DIV的位置, 因为 以上top和left的值 是需要计算的。因为如果按自己屏幕的大小固定值的话, 别人如果大于或小于你的屏幕分辨率,那么 DIV 的位置就会发生变化。
如果不想剧中就更改TOP 和Left的值即可
<script type="text/javascript">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()">