满屏浮动图标被select覆盖解决方法
来源:互联网 发布:ajax获取数据库数据 编辑:程序博客网 时间:2024/06/13 23:58
如题,遇到了此问题,在网上查找对策,找到的是浮动层被select覆盖的解决方案(比如下拉菜单),离我的需要还有那么点距离。不过原理很类似,就是在浮动层div下衬一个同样大小的iframe,因为ifram优先度高于select,故可以解决。
这里稍微提一下div、iframe、select层级别问题。因为select是窗口元素,并且无可争议div为非窗口元素,所以当这两个排层次关系的话,select永远在div之上,无论div的z-index设置多高,然而iframe比较特殊,在ie5.5之前是窗口元素,ie5.5及之后为非窗口,但是无论他是什么样的原素,他不仅可以通过z-index,跟select进行层级排序,还可以跟div用z-index进行层级排序。这就出现了一个有意思的问题,如果iframe的z-index最大或最小,那么无可争议,不管div的z-index是否大于select,div在select之下;然而一旦div>iframe>selcect这种情况,那么就会出现div在最上,select在最下。
可以网上搜索“ HTML元素的Z-index属性是如何工作的” ,得到更多相关信息。
基于此,因为我的是满屏浮动,所以只要动态获得浮动图标的长宽,相对位置就可以了。
核心代码:
IfrRef.style.width = DivRef.offsetWidth; // 将图标div层宽度赋给iframe
IfrRef.style.height = DivRef.offsetHeight; // 将图标div层高度赋给iframe
IfrRef.style.top = DivRef.style.top; // 相对位置top
IfrRef.style.left = DivRef.style.left; // 相对位置left
IfrRef.style.zIndex = DivRef.style.zIndex - 1; // iframe层级别低于div层级别1级
IfrRef.style.display = "block"; // 显示iframe
关于高度、宽度赋值为什么用offsetWidth和offsetHeight,是因为DivRef.style.width(height)为空,笔者认为这原因是因为div没有width和height属性(只能通过css定义),所以取不到。如果这说法不对,请指正。
完整演示代码如下:(声明,满屏浮动的代码是抄的)
- 满屏浮动图标被select覆盖解决方法
- IE6中Div 遮罩层覆盖不住select控件的解决方法
- 弹出层Div 覆盖不住select控件的解决方法
- IE6中Div 遮罩层覆盖不住select控件的解决方法
- 浮动DIV覆盖dropDownList
- flash - 关于浮动广告被flash覆盖的问题
- 图标覆盖之IShellIconOverlayIdentifier
- Android 在Dialog中使用Spinner时,下三角图标覆盖在按钮上的解决方法
- 返回顶部浮动图标代码
- select元素覆盖问题
- div 覆盖select
- 浮动bug的解决方法
- CSS浮动溢出解决方法
- EditText被输入法覆盖的解决方法
- [项目-文件同步]图标覆盖
- TortoiseSVN客户端图标覆盖问题
- silverlight浮动层 覆盖问题
- select覆盖div的解决方案
- 设计模式8:Decorator Pattern (装饰模式)
- sys.exit() 也可能不会退出程序
- 关于: check_traffic
- Perl在终端上输出彩色字体
- flash 外国小游戏教程网站
- 满屏浮动图标被select覆盖解决方法
- SWT(JFace)体验之系统托盘实现
- 百度HI QQ和MSN 阿里旺旺贸易通MSN在线客服聊天代码
- 仙剑三 片尾曲 忘记时间
- 北京送检
- asp Jmail发送邮件
- 任务失败,原因是未找到“LC.exe”,或未安装正确的 Microsoft Windows SDK。
- 用debug实现系统冷启动与热启动程序
- 中国电信3G客户端 无法升级的解决办法