详细介绍div与select遮罩问题

需求:

    鼠标滑过text文本框时,弹出提示信息DIV。

问题:

    弹出的DIV层被Select下拉框遮住。

解决方案:

    弹出的DIV层内部嵌套iframe,信息在iframe内部显示(可以是iframe内的table或者是div)

代码:

页面代码:

<div id="name_show" style="display:none;position:absolute"></div>

。。。。。。。

<html:text' property="DV_ASSET/TITLE_NAME" name="DV_ASSET/TITLE_NAME" readonly="true"

onmouseover="show_name(this,'DV_ASSET/TITLE_NAME');" onmouseout="hiddname()">

</html:text>
JS代码
复制代码
//获得绝对顶边距

function getTop(e){
    var ost = e.offsetTop;
    while(e=e.offsetParent){
        ost += e.offsetTop;
   }
    return ost;
}

//获得绝对左边距
function getLeft(e){
    var osl = e.offsetLeft;
    while(e=e.offsetParent){
        osl += e.offsetLeft;
    }
    return osl;
}

// 泡泡提示信息 (弹出---消失)
function show_name(obj,name){
    var show_value=document.getElementsByName(name)[0].value;
    var x= parseInt(getLeft(obj));
    var y=obj.offsetHeight + parseInt(getTop(obj));
    if(show_value.length>11){   //只要字符串大于11就用泡泡信息提示
    var divObj =document.getElementById('name_show');
    // var x = event.clientX;
    //var y = event.clientY;
    divObj.style.left= x+"px";
    divObj.style.top= y+"px";
    divObj.innerHTML="<table bgcolor=#63B8FF border=1 width='200px' height='80px'><tr><td style='word-break:break-all'>"+show_value+"</td></tr></table><iframe style='position:absolute;top:0px;left:0px; width:200px; height:80px; z-index:-1;'></iframe>";
    divObj.style.display='block';
    }
}

function hiddname(){
   document.getElementById('name_show').style.display='none';
}
复制代码

 备注:

从上面的demo可以看出,弹出的DIV中 

<table bgcolor=#63B8FF border=1 width='200px' height='80px'><tr><td style='word-break:break-all'>"+show_value+"</td></tr></table><iframe style='position:absolute;top:0px;left:0px; width:200px; height:80px; z-index:-1;'></iframe>";

放了一个table。如果不加 

<iframe style='position:absolute;top:0px;left:0px; width:200px; height:80px; z-index:-1;'></iframe>

显示也是没有问题的,但是会被select遮住。

添 加iframe要注意。首先它的style必须是绝对定位:position:absolute,而且把它的top:0px;left:0px;这个意思 就是在div层中的左上角开始定位,width:200px; height:80px;这个高度和宽度要和div内部的table大小一致。z-index:-1,它很重要,就是iframe的要层叠在最下层。DIV的大小由内部放的iframe决定(table放在iframe上面),而iframe和table大小相同。
<td style="word-break:break-all"> -----td自动换行CSS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值