解决div不能覆盖select的问题!
我写了个函数,当鼠标移动到div上,自动隐藏冲突的select,移开后在显示被隐藏的select.在onMouseOver上执行hideConflict(this),... ...
函数如下:作者阿龙,WEB开发网
http://www.webkaifa.com
function hideConflict(divCtl){
arrConflict = new Array();
hideConflictObject("SELECT",divCtl);
hideConflictObject("OBJECT",divCtl);
}
function showConflict(){
for(var i = 0;i < arrConflict.length;i ++){
arrConflict[i].style.visibility = "";
}
}
function hideConflictObject(strTagName,divCtl) {
x = divCtl.offsetLeft;
y = divCtl.offsetTop;
h = divCtl.offsetHeight;
w = divCtl.offsetWidth;
for (var i = 0; i < document.all.tags(strTagName).length; i++)
{
var obj = document.all.tags(strTagName)[i];
if (! obj || ! obj.offsetParent)
continue;
var objLeft = obj.offsetLeft;
var objTop = obj.offsetTop;
var objHeight = obj.offsetHeight;
var objWidth = obj.offsetWidth;
var objParent = obj.offsetParent;
while (objParent.tagName.toUpperCase() != "BODY"){
objLeft += objParent.offsetLeft;
objTop += objParent.offsetTop;
objParent = objParent.offsetParent;
}
var bolHide = true;
if( obj.style.display == "none" || obj.style.visibility == "hidden" || obj.getAttribute("Author") == "tiannet" ){
bolHide = false;
}
if( ( (objLeft + objWidth) > x && (y + h + 20) > objTop && (objTop+objHeight) > y && objLeft < (x+w) ) && bolHide ){
arrConflict[arrConflict.length] = obj;
obj.style.visibility = "hidden";
}
}
}
分享到:
相关推荐
解决IE6 中select 穿透 div 等层的问题
ie6下DIV覆盖select框js解决代码
select 在ie6下覆盖div bug 解决方案。 div 模拟select 单选 在 body onload事件中调用init_select方法就可,参数传相关背景图片就可。我都已经放到资源包下了。
ie6下select覆盖div的解决办法
但是IE6有一个神奇的逻辑,div 无法覆盖select,但是iframe 可以覆盖select,而div可以覆盖iframe,所以解决办法就是用Z轴高度更高的Iframe元素,包裹或覆盖住下拉列表框控件,使其回到正常的Z轴高度上来! 解决办法...
/** * 让iframe 显示在 指定的div下面 针对ie6 select挡住div 的bug 采用 iframe来当作div的底 * * @param string divId 需要解决的div层 * @param string iframeId 采用的 IFRAME ,如果不指定 自动...
你可以用 深度(z-index)试试。下面是举的一个小例子: #a{ position:absolute; top:80px; left:100px; z-index:1; } #b{ position:absolute; top:70px; left:160px; z-index:0; }
使用div制作蒙版或模拟弹出窗口,但在IE6下,当div下方有下拉列表框select元素的时候,下拉列表框会划破div显示在div之上,不论z-index设为何值均会出现此问题,可能由于下拉列表控件的弹出式下拉列表的原因导致Z轴...
解决方法:在页面里面找到对应div的class 给overflow新的属性visible即可(默认值。内容不会被修剪,会呈现在元素框之外。)即可显示出下拉框 1.找到层1 的overflow 属性, 修改成为visible. 2. 如果有层2, 就把层2的...
个方法好像可行,但前提是div层的大小、位置可知,对于在后台js文件中控制style的div就实效了。 我遇到的恰好就是这种情况,所以太遗憾了。 不过这个帖子还是应该收藏一下。
IE6下解决弹出div 被父页面的select 覆盖的问题,使用jquery 的dialog div 进行增加,删除,修改等操作。 这个是IE6下特有的问题。 下面是解决方法: 1.下载jquery.bgiframe.js ,在我的下载资源中有 2.需要修改...
用DataGrid基于jQuery(实际上只用了它的按照类查找元素一个方法)写的自定义DropDownList,解决不能控制生成后的Select html控件不能控制zIndex而遮挡Div层及其他复杂样式,没有封装成dll,压缩包里是例子及所有用到...
3. 已解决SELECT 元素不能被div覆盖的问题。 14 第二节:IE7-IE8更新 14 1. 不再支持 CSS 表达式,改为支持增强的 CSS 或 DHTML 逻辑。 14 2. currentStyle 对象的Unset属性现在返回其初始值。 15 3. style 对象的 ...
3)改良了代码状态下编辑框不会自动换行而导致不能方便查看代码的问题,现在代码状态下能自动换行! 4)新增GetImagesUrl属性,可以通过该属性获取控件提交内容里所有图片的URL地址(Webeditor1.GetImagesUrl[图片序号]....
3)改良了代码状态下编辑框不会自动换行而导致不能方便查看代码的问题,现在代码状态下能自动换行! 4)新增GetImagesUrl属性,可以通过该属性获取控件提交内容里所有图片的URL地址(Webeditor1.GetImagesUrl[图片序号]....
第一个问题是fixed的tr在ie7中不能进行定位,而且td在定位后并不能保持在表格中的布局,这样在原表格插tr就没意义了。 ps:fixed的相关应用可参考仿LightBox效果。 最后我用的方法是新建一个table,并把源tr克隆到...
overlayClass:适用于divCSS类,该div会覆盖整个浏览器窗口,从而使页面的其余部分模糊。 默认样式是几乎不透明的白色背景。 closeButtonClass: CSS类,适用于关闭全屏模式的按钮。 没有默认样式。 ...
-修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -Window...
scale : 15 //比例值,设置的值越大放大越大,但是这里有个问题就是如果不可以整除时,会产生些很小的白边,目前不知道如何解决 } css(m.img,{ 'position' : 'absolute', 'width' : (m.cont.clientWidth * m....