<body><div id="ss" style="height:200px; width:200px; background-color:#FF0000; position:absolute;z-index:2;"></div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></body>
<script>
var div = document.getElementById("ss")
var top = (document.body.clientHeight-div.offsetHeight)/2
var left = (document.body.clientWidth-div.offsetWidth)/2
var obj = document.getElementById("ss");
function change()
{
//div.style.left=(document.body.clientWidth-div.offsetWidth)/2
//div.style.top =(document.body.clientHeight-div.offsetHeight)/2+document.body.scrollTop
top = (document.body.clientHeight-div.offsetHeight)/2
left = (document.body.clientWidth-div.offsetWidth)/2
div.style.left = left + "px";
div.style.top = top + "px";
obj.innerHTML = top + "<br/>";
obj.innerHTML += left;
}
change()
window.onresize=change
window.onscroll=function(){div.style.top=top+document.body.scrollTop}
</script>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></body>
<script>
var div = document.getElementById("ss")
var top = (document.body.clientHeight-div.offsetHeight)/2
var left = (document.body.clientWidth-div.offsetWidth)/2
var obj = document.getElementById("ss");
function change()
{
//div.style.left=(document.body.clientWidth-div.offsetWidth)/2
//div.style.top =(document.body.clientHeight-div.offsetHeight)/2+document.body.scrollTop
top = (document.body.clientHeight-div.offsetHeight)/2
left = (document.body.clientWidth-div.offsetWidth)/2
div.style.left = left + "px";
div.style.top = top + "px";
obj.innerHTML = top + "<br/>";
obj.innerHTML += left;
}
change()
window.onresize=change
window.onscroll=function(){div.style.top=top+document.body.scrollTop}
</script>
var top = (document.body.clientHeight-div.offsetHeight)/2
var left = (document.body.clientWidth-div.offsetWidth)/2
你这部分,放外面了
应该是放在change函数里
用2变量去记录位置 change里面有计算位置的东西
<div id="box" style="width:100%"><div>test</div></div>
<body><div id="ss" style="height:200px; width:200px; background-color:#FF0000; position:absolute"></div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></body>
<script>
var isIE = (document.all) ? true : false
var div = document.getElementById("ss")
var top = (document.body.clientHeight-div.offsetHeight)/2
var left = (document.body.clientWidth-div.offsetWidth)/2
function change()
{
div.style.left=(document.body.clientWidth-div.offsetWidth)/2
div.style.top =(document.body.clientHeight-div.offsetHeight)/2+document.body.scrollTop
top = (document.body.clientHeight-div.offsetHeight)/2
left = (document.body.clientWidth-div.offsetWidth)/2
}
change()
var oContainer = document.getElementById("box");
if(isIE){
oContainer.onresize=change
}else{
window.onresize=change
}window.onscroll=function(){div.style.top=top+document.body.scrollTop}
</script>
在发帖之前已拜读过你的大作 有同样问题 本想截图为证,但是图片老放不上去。。to 5楼
仔细看操作步骤to 梁超兄
问题解决了
但是没能理解这中写法为什么 box 要在body的外面为什么下面又要这么写 请指教下吧。
var oContainer = document.getElementById("box");
oContainer.onresize=change
看看每次页面resize在IE下是不是都计算了两次
所以我给你加了个div将resize事件转移到div上了
<body><div id="ss" style="height:200px; width:200px; background-color:#FF0000; position:absolute"></div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></body>
<script>
var div = document.getElementById("ss")
var top = (document.body.clientHeight-div.offsetHeight)/2
var left = (document.body.clientWidth-div.offsetWidth)/2
function change()
{
div.style.left=(document.body.clientWidth-div.offsetWidth)/2
div.style.top =(document.body.clientHeight-div.offsetHeight)/2+document.body.scrollTop
top = (document.body.clientHeight-div.offsetHeight)/2
left = (document.body.clientWidth-div.offsetWidth)/2
}
change()
var t
window.onresize=function(){clearTimeout(t);t=setTimeout(change,0)}
window.onscroll=function(){div.style.top=top+document.body.scrollTop}
</script>这样好像也行