日期:2014-05-16 浏览次数:20420 次
function selectFix(odiv) { if(document.all) { var oiframe = document.createElement("iframe"); oiframe.frameBorder=0; oiframe.style.position="absolute"; oiframe.style.zIndex=-1; if(odiv.childNodes.length>0) { odiv.appendChild(oiframe); } else { odiv.insertBefore(oiframe,odiv.firstChild); } odiv.onresize = function(){ oiframe.style.width = this.clientWidth; oiframe.style.height = this.clientHeight; } } }
------解决方案--------------------
其实就是在div的最前面插入一个浮动的iframe 并且通过style.zIndex将其设置为在Div的最底层。大小与DIV的大小相等。这样就可以帮助div遮挡select,并且无需做其他处理。
function selectFix(odiv)//odiv是你的div实例 { if(document.all)//简单判断是否是IE(我偷懒了) { var oiframe = document.createElement("iframe");//创建iframe oiframe.frameBorder=0; oiframe.style.position="absolute";//浮动 oiframe.style.zIndex=-1;//放在最后面 if(odiv.childNodes.length>0)//将iframe插入到div的最前面 { odiv.appendChild(oiframe); } else { odiv.insertBefore(oiframe,odiv.firstChild); } //如果div改变大小 就靠这个事件改变iframe的大小 odiv.onresize = function(){ oiframe.style.width = this.clientWidth; oiframe.style.height = this.clientHeight; } odiv.onresize();//不好意思,忘了先调用一次了。 } }
------解决方案--------------------
如楼上的,就是利用一个与select同级的iframe来档住select。iframe和层的位置、宽度高度一样,透明度设为0就得了,而且这问题是IE6才有,IE7和FireFox不会有这问题。