`
happmaoo
  • 浏览: 4503964 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

当层遇到下拉框时

阅读更多
在IE环境下,层遇到下拉框时总会出现层被下拉框所挡住的情形,这是怎么回事呢?这是IE的一个bug(其它浏览器没有这个问题),下拉框是个web control,其优先级很高,一般的控件无法在其上方,为解决此问题,总结了以下几种常用方法:
隐藏下拉框(最常用方法)
以下是代码片段:
<!--StartFragment--><scriptlanguage="JavaScript">
<!--
/*
*要显示某个层时调用HideElements(oDiv)
*隐藏某个层时调用ShowElements()
*/
/*
*隐藏下拉框函数
*/
functionHideElements(el)
{
if(!window.__temp__)window.__temp__=newArray();
varo=["select","iframe","applet","object"];
for(vari=0;i<o.length;i++)
{
varelms=document.getElementsByTagName(o[i]);
for(varj=0;j<elms.length;j++)
{
varp=getPosition(elms[j]);
vare=getPosition(el);
if(e.left+e.width>p.left&&e.left<p.left+p.width&&
e.top+e.height>p.top&&e.top<p.top+p.height)
{
window.__temp__[j]=elms[j];
elms[j].style.visibility="hidden";
}
}
}
functiongetPosition(el)
{
vare=el.offsetParent,x=el.offsetLeft,y=el.offsetTop;
while(e.tagName!='BODY')
{
x+=e.offsetLeft;
y+=e.offsetTop;
e=e.offsetParent;
}
return{
"left":x,
"top":y,
"width":el.offsetWidth,
"height":el.offsetHeight
}
};
};
/*
*显示下拉框
*/
functionShowElements()
{
vart=window.__temp__;
if(t){
for(vari=0;i<t.length;i++)
{
t[i].style.visibility="visible";
}
}
};

//-->
</script>
用iframe为载体(实用)
以下是代码片段:
<!--StartFragment--><divonclick="show()">onclicktest</div>
<divid="demo"style="position:absolute;width:100;height:100;z-index:9999;visibility:hidden"></div>
<selectstyle="width:150px"><option>seeme?</option></select>
<scriptlanguage="JavaScript">
<!--
vari=0;
varie=document.all?1:0;
varo=document.getElementById("demo");
varw=o.offsetWidth;
varh=o.offsetHeight;
if(ie)
o.innerHTML='<iframename="WebFrame"frameborder=0width="'+w+
'"height="'+h+'"marginwidth=0marginheight=0></iframe>';
functionshow()
{
varstr='<divstyle="border:1pxsolid;width:'+w+'px;height='+h+'px">hello</div>'
if(ie){
vardoc=window.frames["WebFrame"].document;
doc.open();
doc.write('<html><head></head><body>'+str+'</body></html>');
doc.close();
}else{
o.innerHTML=str;
}
o.style.visibility=++i%2?'visible':'hidden';
};
//-->
</script>
popup方法(需IE5.5+)
以下是代码片段:

<!--StartFragment--><scriptlanguage="JavaScript">
<!--
varoPopup=window.createPopup();
oPopup.document.body.innerHTML='NewWindow';
oPopup.show(100,100,200,200,oPopup.document);
/*
*window.createPopup产生的窗口可以跨载框架,更不用说下拉框了,但其使用有一定的限制,并不推荐使用
*/
//-->
</script>
分享到:
评论

相关推荐

    Freemarker通用select下拉框

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架中的JSP替代技术。本示例关注的是如何在Freemarker(FTL)中创建一个通用的`select`下拉框,以满足各种Web界面中的下拉选择需求。...

    android类似美团筛选下拉框

    - 当用户改变筛选条件时,根据当前的筛选状态更新显示的数据,这可能涉及到数据过滤、排序等操作。 4. **样式多样化**: - 为了满足不同设计风格的需求,"FilterBar"需要提供多种样式。例如,可以通过设置主题...

    解决layui 三级联动下拉框更新时回显的问题

    在使用layui框架开发前端页面时,经常会遇到三级联动下拉框的场景。所谓三级联动,是指在一个表单中,当用户选择了一个省份时,城市下拉框会相应地更新为该省份下的城市列表;同理,当选择了某个城市时,相应的区域...

    android+myeclipse+mysql自定义控件下拉框的数据绑定

    在项目实践中,开发者可能会遇到的问题包括但不限于:网络请求的处理(如使用Retrofit或OkHttp)、数据解析(如使用Gson或Jackson库)、数据安全(如防止SQL注入)、以及线程同步(避免在主线程进行耗时操作,可使用...

    C#下拉框中显示树控件

    在设计用户界面时,经常会遇到需要在下拉框中展示层级结构数据的情况,这时可以使用扩展控件来实现“下拉框中显示树控件”的功能。这个特性允许用户在一个紧凑的空间内浏览和选择嵌套的数据项,提高了交互体验。 ...

    快速解决select2在bootstrap模态框中下拉框隐藏的问题

    但是,当Select2与Bootstrap模态框结合使用时,可能会遇到一些交互上的问题,特别是下拉框无法正确显示在模态框的上方。 问题描述中提到,当在Bootstrap模态框中使用Select2时,下拉框会被模态框内容遮挡,这主要是...

    解决Extjs下拉框不显示的问题

    在页面上,如果一个ComboBox位于一个嵌套的窗口(Window)内,特别是当这个窗口本身也是一个窗口的子元素时,可能会由于层叠顺序(Z-Index)的混乱导致下拉列表被其他元素遮挡,从而显得不可见。此外,如果ComboBox...

    ajax 自动完成下拉框 自动提示位置问题

    然而,在实现这一功能时,可能会遇到自动提示位置的问题,即提示列表的位置可能不正确,无法准确地与输入框对齐。这个问题在给定的代码片段中有所体现。 在描述的代码中,`divPosition()` 函数用于计算并设置提示层...

    javascript省市区三级联动下拉框菜单实例演示

    - 省份选择联动逻辑:为省下拉列表添加事件监听器,当用户选择一个省份时,触发一个函数来处理联动逻辑。该函数将清空城市下拉列表,并根据所选省份动态填充其对应的城市。 - 城市选择联动逻辑:类似地,为城市下拉...

    WPF MulitCheckComboBox 多选下拉控件

    在Windows Presentation Foundation (WPF) 中,开发人员经常会遇到需要实现多选下拉框的场景。这个场景通常涉及用户能够从一个下拉列表中选择多个选项。为了满足这样的需求,开发者可能需要自定义控件或者利用现有的...

    在IE6中浮动层遮盖不住select的方法

    在网页设计中,浮动层(通常通过CSS的`position: absolute`或`position: fixed`实现)常用于创建弹出窗口、提示信息等,但当浮动层与页面中的`&lt;select&gt;`下拉框重叠时,IE6往往无法正常遮盖住下拉框,导致交互体验不...

    layui: layer.open加载窗体时出现遮罩层的解决方法

    然而,在实际使用过程中,用户可能会遇到一个问题,即在使用 `layer.open` 打开窗体时,会伴随有遮罩层的出现,这可能会影响用户体验。本文将详细讲解如何解决这个问题。 首先,我们要了解遮罩层在 Layui 中的作用...

    基于EXT2.2的下拉复选框

    在实际使用中,开发者可能会遇到一些挑战,比如性能问题(大量数据加载时)、界面响应性(触摸设备上的交互)、以及兼容性问题(不同浏览器和版本的差异)。解决这些问题可能涉及到对EXT2.2组件的深入理解,优化数据...

    div+css各种下拉菜单

    当用户将鼠标悬停在触发器上时,子菜单项会滑动显示出来。这种效果可以通过CSS的`display`属性来实现,通过设置`display:none`隐藏子菜单,然后在触发器的`:hover`状态下改变为`display:block`使其可见。 接下来,...

    在vue中实现点击选择框阻止弹出层消失的方法

    当用户在弹出层内进行操作时,我们不希望弹出层立即消失,而是希望用户完成选择后再关闭。本文将详细讲解如何在Vue中实现点击选择框时阻止弹出层自动消失的方法。 首先,我们需要理解问题的根源。在Vue中,事件会从...

    layui layer select 选择被遮挡的解决方法

    在编程的时候, layer弹窗中的select 经常会遇到被遮挡的情况: 解决方法:在页面里面找到对应div的class 给overflow新的属性visible即可(默认值。内容不会被修剪,会呈现在元素框之外。)即可显示出下拉框 1.找到层...

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

    在IT行业中,尤其是在前端开发领域,我们经常遇到与浏览器兼容性相关的问题,特别是涉及到老旧的Internet Explorer(如IE6)时。"解决IE6中 Div层挡不住Select组件"这个问题是一个典型的例子,它反映了IE6在CSS层叠...

    jquery 遮罩层

    **描述**:当 `dialog` 在 IE6 浏览器下使用时,可能会遇到 z-index 无效的问题,导致 select 下拉框被遮挡。 **代码**: ```javascript // 启用 bgiframe 功能来解决 IE6 下的 z-index 问题。 $(".selector")....

    JS设置站内站外搜索样式

    综上所述,当遇到CSS无法直接控制`&lt;select&gt;`下拉框样式的难题时,JavaScript提供了一种强大的解决方案。开发者可以通过上述方法,结合实际需求,创建出符合设计风格且具有良好交互性的自定义下拉搜索框。在实践中,...

    省市区三级联动

    联动指的是在多个下拉框或选择器之间建立关联,当用户在一个下拉框中做出选择时,其他下拉框的内容会根据预设的规则自动更新。在省市区三级联动中,当用户选择了省份,对应的市和区的选项会随之更新,以此类推。 ...

Global site tag (gtag.js) - Google Analytics