设置2个层的z-index值,值大的在上面

解决方案 »

  1.   

    按照楼上的说法,试了还是不行,不知道是否我的写法有误ocx控件:
    <div id="result" style="height:460px; width:800px; overflow:auto;display:block;zIndex = 20000;" >
       <iframe src="tyzh_main.htm" ></iframe>
    </div>弹出层:
    shield.style.zIndex = "30000";
      

  2.   

    z-index
    不知道有没记错,这个只有在position:absolute的时候有效
      

  3.   

    chinmo:
    你不是说设置2个层的z-index值,值大的在上面,所以我就这样写
    ocx控件:
    <div id="result" style="height:460px; width:800px; overflow:auto;display:block;zIndex = 20000;" >
        <iframe src="tyzh_main.htm" > </iframe>
    </div>弹出层:
    shield.style.zIndex = "30000"; 那也就是说弹出层会在ocx控件上面,可以还不是不行,ocx控件还是显示在上面
      

  4.   

    varlj:
    按照你说的设置了,还是不行
      

  5.   

    其实可以在div上加往个iframe的
      

  6.   

    <div id="result" style="height:460px; width:800px; overflow:auto;display:block;zIndex = 20000;" >
         <iframe src="tyzh_main.htm" >  </iframe>
    </div> 
    我就是这样写的,可以不行,层现在是ocx控件的后面
      

  7.   

    仔细检查下,设置了层的关系后不应该出现这情况,没用过ocx控件所以不知道具体他还有什么限制的
      

  8.   

    1.object作载体
    2.用iframe作载体
    3.用iframe遮挡ocx,再用div遮住iframe
      

  9.   

    <div   style="z-index:10;position:absolute;width:100;height:18;overflow:hidden;"   onmouseover="this.style.height=100;"   onmouseout="this.style.height=18;">  
      <iframe     style="position:absolute;z-index:-1;width:100%;height:100%;top:0;left:0;scrolling:no;"   frameborder="0"   src="about:blank"></iframe>  
      <div   style="background-color:#cccccc;">aaaaaaa<br>bbbbbbb<br>ccccccc<br>ccccccc<br>ccccccc<br>ccccccc</div>  
      </div>   
    我按照这样的写法来写,确实可以挡住ocx控件,但是为什么我在层上晃动鼠标
    控件的边框就一直闪?
      

  10.   

    chinmo:
       可以讲讲是为什么什么呢?按照你的说法,我理解的是解决这个问题的办法就是不晃动鼠标,这样
       有点不现实把?
    还有个问题就是,怎么让弹出的层显示的是透明层,也就是说可以看见控件里面的内容
    当然也可以看见弹出层的内容,控件里模块的颜色有好几种。做人要厚道,所以加分了
      

  11.   

    怎么让弹出的层显示的是透明层,也就是说可以看见控件里面的内容 
    呵呵,这个有点BT
    你鼠标晃动,就是不断的在触发onmouseover和onmouseout事件层一旦设置透明了,那么他里面的内容也就跟着透明了!
      

  12.   


    解决的方法就是不要让鼠标不断触发那2个事件,你既然都已经设置了宽度和高度,换一个事件把onmouseover换成onmousemove看看
      

  13.   

    你要想都看到的话那弹出层和控件就不能重叠,一重叠就肯定有一个内容看不见了
    原来是这样,我还以为鼠标晃动,就是不断的在触发onmouseover和onmouseout事件,在我的代码里面
    没有写这2个事件,它难道还会触发吗?有点不明白
      

  14.   

    不好意思,代码里面有onmouseover和onmouseout事件
      

  15.   


    我想到的解决办法就是不用这2个事件来显示层,而是用一个button来处理
    这样的话,就不会触发鼠标事件了。
    但是这样处理有一个问题,当我移动滚动条的时候,还是会出现oxc控件一直闪
    想到的解决办法是在body里面加<body  onload="init()" style="overflow:hidden">
    这样就没有滚动条了,但是div也没有滚动条了,我想这样的思路应该是没有问题,现在的问题是怎么隐藏body的滚动条
    而不隐藏div的滚动条。
      

  16.   

    倒!!你干脆从新开帖算了,拉得这么长,要看半天移动滚动条oxc控件一直闪???难道你是浮动的?
      

  17.   


    有这个想法,但是分只有几十分了
    不,不是浮动。要把我把代码贴出来,您帮我看看 if(XMLHttpReq.status == 200){
          showPage();
     }
    showPage代码:
    document.getElementById("result").innerHTML=result;
    document.getElementById("result").style.display="block"
    document.getElementById("result").style.left = "0px";
    document.getElementById("result").style.top = "0px";  document.getElementById("result").style.height=document.body.scrollHeight+"px";  document.getElementById("result").style.width=document.body.scrollWidth+"px";
    <body  onload="init()" style="overflow:hidden">
      <div style="position:absolute;top:0;left:0;width:100%;height:100%;border:1;solid #C0C0C0;">
          <OBJECT
          id="loadMap"
      classid="clsid:141A0AE4-DB9E-4D20-9C13-04A14F2DBBA4"
      codebase="http://192.168.1.24:8080/kj133/ocx/tyzh_main.ocx"
      width=800
      height=450
      align=left
      hspace=0
      vspace=0
       >
    </OBJECT>
       </div><br />
       
       <div style="position:absolute;top:450;left:0;width:800;height:200;border:1;solid #C0C0C0;">
          <div>
               <input type="button" id="butn"  value="显示/隐藏" onclick="toggle()" />
               卡号:<input type="text" id="cid" size="10">
               定位器号:<input type="text" id="lid" size="10">
               <input type="button" id="query" value="查询"  >    
          </div> 
       </div>
       
     
       <div id="hehe"  style="display:none;z-index:10;position:absolute;top:0;left:0;width:1000;height:1000;overflow:auto;" >  
           <iframe     style="position:absolute;z-index:-1;width:100%;height:100%;top:0;left:0;scrolling:no;"   frameborder="0"   src="about:blank"> </iframe>    
           <div id="result" style="display:none;overflow:auto;background:#D9D9FF;textAlign=center;Filter:Alpha(Opacity=75);position:absolute;opacity = 0.8;">
              
           </div> 
       </div>
       
       
       <script type="text/javascript">
            function toggle(){
                var  obj =document.getElementById('hehe');  
                if (obj.style.display=="block"){
                     obj.style.display="none";
                } else {
                     obj.style.display="block";
                }
            }
       </script>
       
      </body>
      

  18.   


    这你没办法测试,因为这个ocx获取的数据是和一个采集数据的设备在一起的
      

  19.   

    chinmo:<div id="hehe"  style="display:none;z-index:10;position:absolute;top:30;left:0;width:98%;height:94%;overflow:auto;textAlign=center;" >  
           <iframe     style="position:absolute;z-index:-1;width:100%;height:100%;scrolling:no;textAlign=center;"   frameborder="0"   src="about:blank"> </iframe>    
           <div id="result" style="top:30;left:0;width:98%;height:94%;display:none;overflow:auto;background:#D9D9FF;textAlign=center;Filter:Alpha(Opacity=75);position:absolute;opacity = 0.8;"></div> 
       </div>这样处理的话,弹出的层有的时候可以显示一点点ocx的边框,可以解决吗?
      

  20.   


    我就是这样设置的
    被挡住的层:
    <div id="objec">
          <OBJECT
          id="loadMap"
      classid="clsid:141A0AE4-DB9E-4D20-9C13-04A14F2DBBA4"
      codebase="http://192.168.1.24:8080/kj133/ocx/tyzh_main.ocx"
      style="position:absolute;top:30;left:0;width:93%;height:90%;border:1;solid #C0C0C0;"
        >
      </OBJECT>
      </div>要挡住的:
    <div id="hehe"  style="display:none;z-index:10;position:absolute;top:30;left:0;width:98%;height:94%;overflow:auto;textAlign=center;" >  
            <iframe     style="position:absolute;z-index:-1;width:100%;height:100%;scrolling:no;textAlign=center;"   frameborder="0"   src="about:blank">  </iframe>    
            <div id="result" style="top:30;left:0;width:98%;height:94%;display:none;overflow:auto;background:#D9D9FF;textAlign=center;Filter:Alpha(Opacity=75);position:absolute;opacity = 0.8;"> </div> 
        </div> 
      

  21.   

    被挡住的层放在iframe里的??
      

  22.   

    可能是我没说清楚ocx控件:
    <div id="objec">
           <OBJECT
            id="loadMap"
            classid="clsid:141A0AE4-DB9E-4D20-9C13-04A14F2DBBA4"
            codebase="http://192.168.1.24:8080/kj133/ocx/tyzh_main.ocx"
             style="position:absolute;top:30;left:0;width:93%;height:90%;border:1;solid #C0C0C0;"
        >
       </OBJECT>
       </div> 其中id="result"的div为要挡住ocx的层
    <div id="hehe"  style="display:none;z-index:10;position:absolute;top:30;left:0;width:98%;height:94%;overflow:auto;textAlign=center;" >  
             <iframe     style="position:absolute;z-index:-1;width:100%;height:100%;scrolling:no;textAlign=center;"   frameborder="0"   src="about:blank">   </iframe>    
             <div id="result" style="top:30;left:0;width:98%;height:94%;display:none;overflow:auto;background:#D9D9FF;textAlign=center;Filter:Alpha(Opacity=75);position:absolute;opacity = 0.8;">  </div> 
         </div> 有的时候会出现在层里面可以看见ocx的边框,在说了我的id="result"的div
    也大于ocx的高度和宽度,怎么还会出现这样的情况?
      

  23.   

    <iframe style='display:none;position:absolute;visibility:inherit; top:0px; left:0px;width:100%; height:100%;z-index:498;opacity:.0;filter: alpha( opacity=0 ); -moz-opacity:0;border:1px solid #ff0000'></iframe>
    这个iframe定位在你的object后面,就可以了~ 
      

  24.   

    楼上的真行,弹出层显示了,但我的ocx显示的是一个圈儿不知道怎样能让它不显示。