100分求救,JS弹出层,如何才能挡住ocx控件? 设置2个层的z-index值,值大的在上面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 按照楼上的说法,试了还是不行,不知道是否我的写法有误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"; z-index不知道有没记错,这个只有在position:absolute的时候有效 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控件还是显示在上面 varlj:按照你说的设置了,还是不行 其实可以在div上加往个iframe的 <div id="result" style="height:460px; width:800px; overflow:auto;display:block;zIndex = 20000;" > <iframe src="tyzh_main.htm" > </iframe></div> 我就是这样写的,可以不行,层现在是ocx控件的后面 仔细检查下,设置了层的关系后不应该出现这情况,没用过ocx控件所以不知道具体他还有什么限制的 1.object作载体2.用iframe作载体3.用iframe遮挡ocx,再用div遮住iframe <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控件,但是为什么我在层上晃动鼠标控件的边框就一直闪? chinmo: 可以讲讲是为什么什么呢?按照你的说法,我理解的是解决这个问题的办法就是不晃动鼠标,这样 有点不现实把?还有个问题就是,怎么让弹出的层显示的是透明层,也就是说可以看见控件里面的内容当然也可以看见弹出层的内容,控件里模块的颜色有好几种。做人要厚道,所以加分了 怎么让弹出的层显示的是透明层,也就是说可以看见控件里面的内容 呵呵,这个有点BT你鼠标晃动,就是不断的在触发onmouseover和onmouseout事件层一旦设置透明了,那么他里面的内容也就跟着透明了! 解决的方法就是不要让鼠标不断触发那2个事件,你既然都已经设置了宽度和高度,换一个事件把onmouseover换成onmousemove看看 你要想都看到的话那弹出层和控件就不能重叠,一重叠就肯定有一个内容看不见了原来是这样,我还以为鼠标晃动,就是不断的在触发onmouseover和onmouseout事件,在我的代码里面没有写这2个事件,它难道还会触发吗?有点不明白 不好意思,代码里面有onmouseover和onmouseout事件 我想到的解决办法就是不用这2个事件来显示层,而是用一个button来处理这样的话,就不会触发鼠标事件了。但是这样处理有一个问题,当我移动滚动条的时候,还是会出现oxc控件一直闪想到的解决办法是在body里面加<body onload="init()" style="overflow:hidden">这样就没有滚动条了,但是div也没有滚动条了,我想这样的思路应该是没有问题,现在的问题是怎么隐藏body的滚动条而不隐藏div的滚动条。 倒!!你干脆从新开帖算了,拉得这么长,要看半天移动滚动条oxc控件一直闪???难道你是浮动的? 有这个想法,但是分只有几十分了不,不是浮动。要把我把代码贴出来,您帮我看看 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> 这你没办法测试,因为这个ocx获取的数据是和一个采集数据的设备在一起的 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的边框,可以解决吗? 我就是这样设置的被挡住的层:<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> 被挡住的层放在iframe里的?? 可能是我没说清楚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的高度和宽度,怎么还会出现这样的情况? <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后面,就可以了~ 楼上的真行,弹出层显示了,但我的ocx显示的是一个圈儿不知道怎样能让它不显示。 父页面能否调用iframe引用的子页面中定义的function 請教幾個 javascript 事件監控及字符提取問題 用JS更改行内样式的值? js在网站开发时需要学习吗? IFRAME之间链接问题 firefox不能显示flash javascript怎么获得php中变量的值? 求指导! 如何使用javascript根据数据库中的层次显示一个动态树状结构 js的 substring方法是怎么实现的? 用javascript做js页码 如何用JS获取sina博客编辑器的值?
<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";
不知道有没记错,这个只有在position:absolute的时候有效
你不是说设置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控件还是显示在上面
按照你说的设置了,还是不行
<iframe src="tyzh_main.htm" > </iframe>
</div>
我就是这样写的,可以不行,层现在是ocx控件的后面
2.用iframe作载体
3.用iframe遮挡ocx,再用div遮住iframe
<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控件,但是为什么我在层上晃动鼠标
控件的边框就一直闪?
可以讲讲是为什么什么呢?按照你的说法,我理解的是解决这个问题的办法就是不晃动鼠标,这样
有点不现实把?
还有个问题就是,怎么让弹出的层显示的是透明层,也就是说可以看见控件里面的内容
当然也可以看见弹出层的内容,控件里模块的颜色有好几种。做人要厚道,所以加分了
呵呵,这个有点BT
你鼠标晃动,就是不断的在触发onmouseover和onmouseout事件层一旦设置透明了,那么他里面的内容也就跟着透明了!
解决的方法就是不要让鼠标不断触发那2个事件,你既然都已经设置了宽度和高度,换一个事件把onmouseover换成onmousemove看看
原来是这样,我还以为鼠标晃动,就是不断的在触发onmouseover和onmouseout事件,在我的代码里面
没有写这2个事件,它难道还会触发吗?有点不明白
我想到的解决办法就是不用这2个事件来显示层,而是用一个button来处理
这样的话,就不会触发鼠标事件了。
但是这样处理有一个问题,当我移动滚动条的时候,还是会出现oxc控件一直闪
想到的解决办法是在body里面加<body onload="init()" style="overflow:hidden">
这样就没有滚动条了,但是div也没有滚动条了,我想这样的思路应该是没有问题,现在的问题是怎么隐藏body的滚动条
而不隐藏div的滚动条。
有这个想法,但是分只有几十分了
不,不是浮动。要把我把代码贴出来,您帮我看看 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>
这你没办法测试,因为这个ocx获取的数据是和一个采集数据的设备在一起的
<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的边框,可以解决吗?
我就是这样设置的
被挡住的层:
<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>
<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的高度和宽度,怎么还会出现这样的情况?
这个iframe定位在你的object后面,就可以了~