`
jfwcn
  • 浏览: 16482 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

解决div不能覆盖select的问题!

Web 
阅读更多
解决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";
  }
}
}
3
0
分享到:
评论
2 楼 jfwcn 2008-08-01  
全部隐藏显然不好吗!
1 楼 liudaoru 2008-07-28  
简单点的话可以直接隐藏掉页面所有的select

相关推荐

    解决div总是被select遮挡的问题.rar

    在本案例中,"解决div总是被select遮挡的问题.rar"提供了解决方案,通过引入一个透明的`iframe`来规避这一现象。 首先,我们需要理解Z轴顺序的概念。在CSS中,`z-index`属性用于指定元素在堆叠上下文中的层级。具有...

    ie6下select覆盖div的解决办法

    2. **iframe隔离法**:在Div上层创建一个透明的iframe,设置适当的宽高,覆盖Select所在的位置。由于iframe自身形成一个新的层叠上下文,它可以防止Select覆盖Div。不过这种方法可能会影响页面性能,且在某些情况下...

    解决IE6 中select 穿透 div 等层的问题

    在互联网的早期,Internet Explorer 6 (简称IE6) 是一款广泛应用的浏览器,但它的兼容性和渲染机制存在诸多问题,其中一个问题就是“select穿透div”的现象。这个问题在现代浏览器中通常不会出现,但在IE6中,`...

    ie6下DIV覆盖select框js解决代码

    总结来说,解决IE6下`div`覆盖`select`框的问题需要理解浏览器的层叠上下文规则,并利用JavaScript动态调整元素的样式。虽然这种问题在现代浏览器中很少出现,但在维护旧项目或考虑跨浏览器兼容性时,理解并掌握这种...

    解决IE6中 Div层挡不住Select组件

    "解决IE6中 Div层挡不住Select组件"这个问题是一个典型的例子,它反映了IE6在CSS层叠样式和Z-index处理上的独特行为。 在现代浏览器中,我们可以利用CSS的`z-index`属性来控制元素的前后堆叠顺序,从而让某些元素...

    让div浮动在select之上的完美解决方案!多浏览器兼容

    5. **利用JavaScript进行辅助:** 如果上述CSS方法仍无法解决问题,可以借助JavaScript检测用户对`select`元素的操作,然后动态改变`div`的样式,使其始终位于`select`之上。 6. **测试与优化:** 在多种浏览器环境...

    div 模拟select 单选

    select 在ie6下覆盖div bug 解决方案。 div 模拟select 单选 在 body onload事件中调用init_select方法就可,参数传相关背景图片就可。我都已经放到资源包下了。

    最顶层div被flash或者下拉列表遮挡的问题解决

    ### 最顶层div被flash或者下拉列表遮挡的问题解决 在网页设计中,有时会出现顶层的div元素被其他元素如Flash或下拉列表遮挡的情况。这种遮挡问题通常是由于CSS定位属性设置不当造成的,尤其是`z-index`值的设置不...

    解决DIV在IE下被下拉列表select穿透的问题(二)

    标题"解决DIV在IE下被下拉列表select穿透的问题(二)"所提及的,是一个典型的IE浏览器特有的问题。这个问题涉及到HTML中的`&lt;div&gt;`元素和`&lt;select&gt;`下拉列表之间的交互,具体表现为在Internet Explorer(特别是旧版本...

    IE6下Select元素被div等元素覆盖的解决办法

    由于div无法直接覆盖select,但iframe可以,然后再让div覆盖iframe,这样就可以间接使得div覆盖select。具体实现方法有以下两种: 1. 将iframe元素作为select元素的容器,直接包裹select,如下代码所示: ```html ...

    ie6下select遮挡div

    1. 使用jQuery bgiframe插件:该插件创建一个透明的iframe层,将被遮挡的div覆盖在select之上,从而避免遮挡问题。 2. 避免使用绝对或相对定位:改用其他布局方式,如使用浮动(float)或Flexbox(对于现代浏览器)...

    解决 Ie 6下 select挡住div的通用函数

    /** * 让iframe 显示在 指定的div下面 针对ie6 select挡住div 的bug 采用 iframe来当作div的底 * * @param string divId 需要解决的div层 * @param string iframeId 采用的 IFRAME ,如果不指定 自动...

    解决DIV在IE下被下拉列表select穿透的问题(一)

    标题提到的“解决DIV在IE下被下拉列表select穿透的问题(一)”是一个典型的老版IE浏览器渲染问题。在某些情况下,当一个HTML页面中的select元素被点击时,其下拉选项可能会穿透并显示在覆盖在其上方的其他DOM元素(如...

    解决ie6 select的title不能显示的问题

    3. **位置计算**:计算`div`容器相对于`select`元素的位置,确保它能正确地覆盖在`select`元素上方。 4. **遍历选项**:遍历`select`元素中的所有选项,为每个选项创建一个`td`元素,并设置相应的属性和事件处理器。...

    DIV 层 select

    1. **点击穿透问题**:由于浏览器的默认渲染机制,当一个 `div` 层覆盖在 `select` 元素上时,用户可能仍然能够通过 `div` 层触发 `select` 下拉菜单,这可能导致用户体验不佳。 2. **样式冲突**:`div` 层和 `...

    Div Select挡住的解决办法

    这样,虽然`Div`不能直接覆盖`Select`,但`Iframe`可以。由于`Iframe`在`Div`下方,用户可以通过`Iframe`间接与`Div`进行交互,从而避免了被`Select`遮挡的问题。同时,`Iframe`的透明设置不会影响页面的视觉效果。 ...

    IE6下div层被select控件遮住的问题解决方法

    在互联网的早期,尤其是IE6浏览器占据主导地位的时代,开发者们常常会遇到一个棘手的问题:在页面上,当一个`div`层位于`select`下拉框之上时,`select`控件会穿透`div`层显示出来,导致设计效果无法正常展现。...

    div总是被select遮挡的解决方法

    在这种情况下,需要通过JavaScript来动态调整iframe或div的大小和位置以覆盖select元素。 需要注意的是,文章中的一些CSS样式代码存在错误,例如“background-(this.nextSibling.offsetHeight)”应该是“background...

Global site tag (gtag.js) - Google Analytics