css+div 怎么实现弹出层100% 显示 也就是说能适应不同浏览器的分辨率 弹出层是一半透明的层

html-css042

css+div 怎么实现弹出层100% 显示 也就是说能适应不同浏览器的分辨率 弹出层是一半透明的层,第1张

<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()">

绝对定位弹出DIV的绝对位置 ,

CSS样式名:

position:absolute ,

top:文档高度/2-弹出DIV高度/2 px

left:文档宽度/2-弹出DIV宽度/2 px

这样的算法 就能够把弹出的DIV 位置 设置为 页面的中部

DIV+CSS不能够完全的控制DIV的位置, 因为 以上top和left的值 是需要计算的。因为如果按自己屏幕的大小固定值的话, 别人如果大于或小于你的屏幕分辨率,那么 DIV 的位置就会发生变化。

如果不想剧中就更改TOP 和Left的值即可