解决控件遮挡问题的方法技巧
从昨天开始,一直在努力解决一个问题:我引用了一个别人用js代码编写的日历控件,但是这个日历控件会被下面的dropdownlist控件遮挡。
后来查询一些资料,再加上同事的讲解,得知这主要是因为Dropdownlist控件的优先级比一般的控件都高,除了iframe。参考一些资料之后,我决定引用iframe来遮盖dropdownlist。
我记录一个经典的html页面吧,它能很好的说明这个问题:
<html> <head> <script> function DivSetVisible(state) { var DivRef = document.getElementById('PopupDiv'); var IfrRef = document.getElementById('DivShim'); if(state) { DivRef.style.display = "block"; IfrRef.style.width = DivRef.offsetWidth; IfrRef.style.height = DivRef.offsetHeight; IfrRef.style.top = DivRef.style.top; IfrRef.style.left = DivRef.style.left; IfrRef.style.zIndex = DivRef.style.zIndex - 1; IfrRef.style.display = "block"; } else { DivRef.style.display = "none"; IfrRef.style.display = "none"; } } </script> </head> <body> <form> <select> <option>A Select Box is Born ....</option> </select> </form> <div id="PopupDiv" style="position:absolute; top:25px; left:50px; padding:4px; display:none; background-color:#000000; color:#ffffff; z-index:100"> .... and a DIV can cover it up<br>through the help of an IFRAME. </div> <iframe id="DivShim" src="javascript:false;" scrolling="no" frameborder="0" style="position:absolute; top:0px; left:0px; display:none;"> </iframe> <br> <br> <a href="#" onclick="DivSetVisible(true)">Click to show DIV.</a> <br> <br> <a href="#" onclick="DivSetVisible(false)">Click to hide DIV.</a> </body> </html>
可以讲这个html拷贝到notepad,保存为html文件,打开之后就能看明白了。
另外还找到另外一条语句,用于讲ifram设为transparent的:
iframe.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
这条语句可以将iframe设为透明的,而且仍然遮挡dropdownlist。
本文地址:http://www.45fan.com/a/question/68946.html