<script language="JavaScript">
<!--
/*
 *  要显示某个层时调用HideElements(oDiv)
 *  隐藏某个层时调用ShowElements()
 */
/*
 * 隐藏下拉框函数
 */
function HideElements(el) 
{
    if (!window.__temp__) window.__temp__ = new Array();
    var o = ["select","iframe","applet","object"];
    for (var i=0; i<o.length; i++) 
    {
        var elms = document.getElementsByTagName(o[i]);
        for (var j=0; j<elms.length; j++) 
        {
            var p = getPosition(elms[j]);
            var e = getPosition(el);
            if (e.left + e.width > p.left && e.left < p.left + p.width &&
                e.top + e.height > p.top && e.top < p.top + p.height) 
            {
                window.__temp__[j] = elms[j];
                elms[j].style.visibility = "hidden";
            }
        }
    }
    function getPosition(el) 
    {
        var e = el.offsetParent, x = el.offsetLeft, y = el.offsetTop;
        while (e.tagName != 'BODY') 
        {
            x += e.offsetLeft;
            y += e.offsetTop;
            e = e.offsetParent;
        }
        return {
            "left":     x,
            "top":      y,
            "width":    el.offsetWidth,
            "height":   el.offsetHeight
        }
    };
};
/*
 * 显示下拉框
 */
function ShowElements() 
{
    var t = window.__temp__;
    if (t) {
        for (var i=0; i<t.length; i++) 
        {
            t[i].style.visibility = "visible";
        }
    }
};  var i = 0;
function test()
{
    if (++i % 2)
    {
        demo.style.display = '';
        HideElements(demo);
    }
    else
    {
        demo.style.display = 'none';
        ShowElements();
    }       
}
//-->
</script>   <input type="button" value="Click Me" onclick="test()">
<div id="demo" style="border: solid 1 green; position:absolute;width:100;height:100;z-index:9999; display: none;">
ahhahs
sdfskdfsdf
</div>
<select>
    <option>test</option>
</select>
<iframe width="50" height="50"></iframe>

解决方案 »

  1.   

    如果网页中同时存在 flash 等其他类型的对象,按理也有类似的情况。也可能是我理解的不对,请指教。
      

  2.   

    对了,你的 Process Bar 程序没法下载。 能更新吗? 或者发给我,谢谢了。
      

  3.   

    /script/progressorbar.js
    在公司上传不了...
      

  4.   

    ok, 找到了。progressorbar.js 和 loader.js 两个文件好像有区别? 看的我晕呼晕呼的~
      

  5.   

    我用 MyIE 试都是正常显示的。
      

  6.   

    狐狸认为怎么改呢??我认为做个我重循环,window._temp_[][]这样不会因为j相同而排挤掉覆盖的了
      

  7.   

    晕倒, 是够老的了。 不过好像 windows 2000 安装完了不升级的话默认就是 IE5.0 吧? 记不清了。
      

  8.   

    也不多,web程序至少要在ie5,ie6,ns6+,moz1.6测试,这是最低标准了,只是我们这里比较多的是做项目,不是产品,少做这样的测试
      

  9.   

    抛开了 ie , 有些特性比如 htc 完全不能用, 还是蛮可惜的。