<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>无标题页</title>
</head>
<body>
<div style="width:2000px;height:2000px;"></div>
<div id="div" style="position:absolute; background-color:Green; width:100px; height:100px;"></div>
</body>
</html>
<script type="text/javascript">
    function $(id){return document.getElementById(id);};
    var div = $("div");
    
    function reset()
    {
        var d = document.documentElement;
        //  首先取得页面现在的左上角相对位置
        var x1 = d.scrollLeft;
        var y1 = d.scrollTop;
        var w1 = d.clientWidth;
        var h1 = d.clientHeight;
        
        //  取得浮动层的信息
        var w = parseInt(div.style.width);
        var h = parseInt(div.style.height);
        var x = Math.ceil((w1 - w)/2) + x1;
        var y = Math.ceil((h1 - h)/2) + y1;
        
        //  设置位置
        div.style.left = x;
        div.style.top = y;
    }
    window.onresize = reset;
    window.onscroll = reset;
    reset();
</script>

解决方案 »

  1.   

    这个例子中的div在移动时还有点闪,你可以再加一个定时器,让他平缓移动
      

  2.   

    谢谢 wideroad闪没关系,因为我不用一直在中间,移动滚动条后我就不管它在哪了
    我只要第一次出现时在中间。谢谢,你这个例子在IE下非常好。可以firefox下就不行了
      

  3.   

    谢谢。wideroad。 firfox我根据我开始的代码,已经作好了。
      

  4.   

    因为这下面用的一些属性可以在firefox中没有,具体换成什么我也记不太清楚了,你自己找一下看看吧