日期:2014-05-16 浏览次数:20682 次
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不会有这问题。