今天突然发现一问题, 我在table 的td中放了个lable 还有iframe 我在JS写的方法是当鼠标移开这个td的时候就隐藏,
但我发现当把鼠标放在lable和iframe显示的内容之间时,这个td也隐藏了,按理说鼠标现在应该还是停留在td内,
如果在td内那么这个td就不该隐藏的
下面是html代码,附一张图如下,希望高手指点下:
<table class="frameTable" cellpadding="0" cellspacing="0">
<tr>
<td class="frameLeft" id="left" valign="top" style="display: block;" onmouseout="OutSplit();"><!-- 这里!!! -->
<label class="leftLabel">
功能列表 <a href="#">锁定</a></label>
<!-- 在同一个TD里面。加入一个LABEL。可以防止IFRAME的横向滚动条出现,去掉LABEL后横向滚动条会出现 -->
<iframe height="100%" width="100%" id="leftWindow" frameborder="0" src="Frameleft.aspx">
</iframe>
</td>
<td class="Noprint" style="width: 12px;">
<img id="split" src="../app_themes/default/images/open.gif" style="display: none"
alt="" onmouseover="OverSplit();" />
</td>
<td class="frameRight">
<iframe height="100%" width="100%" id="rightWindow" name="rightWindow" frameborder="0">
</iframe>
</td>
</tr>
</table> Js代码var left=document.getElementById("left");
function OutSplit()
{
var browsertype;
if(navigator.userAgent.indexOf("MSIE")>0)
{
browsertype="block";
}
else
{
browsertype="table-cell";
}
if(left.style.display=="none")
{
left.style.display=browsertype;
split.src="../app_themes/default/images/close.gif";
}
else
{
left.style.display="none";
split.style.display=browsertype;
split.src="../app_themes/default/images/open.gif";
}
}
但我发现当把鼠标放在lable和iframe显示的内容之间时,这个td也隐藏了,按理说鼠标现在应该还是停留在td内,
如果在td内那么这个td就不该隐藏的
下面是html代码,附一张图如下,希望高手指点下:
<table class="frameTable" cellpadding="0" cellspacing="0">
<tr>
<td class="frameLeft" id="left" valign="top" style="display: block;" onmouseout="OutSplit();"><!-- 这里!!! -->
<label class="leftLabel">
功能列表 <a href="#">锁定</a></label>
<!-- 在同一个TD里面。加入一个LABEL。可以防止IFRAME的横向滚动条出现,去掉LABEL后横向滚动条会出现 -->
<iframe height="100%" width="100%" id="leftWindow" frameborder="0" src="Frameleft.aspx">
</iframe>
</td>
<td class="Noprint" style="width: 12px;">
<img id="split" src="../app_themes/default/images/open.gif" style="display: none"
alt="" onmouseover="OverSplit();" />
</td>
<td class="frameRight">
<iframe height="100%" width="100%" id="rightWindow" name="rightWindow" frameborder="0">
</iframe>
</td>
</tr>
</table> Js代码var left=document.getElementById("left");
function OutSplit()
{
var browsertype;
if(navigator.userAgent.indexOf("MSIE")>0)
{
browsertype="block";
}
else
{
browsertype="table-cell";
}
if(left.style.display=="none")
{
left.style.display=browsertype;
split.src="../app_themes/default/images/close.gif";
}
else
{
left.style.display="none";
split.style.display=browsertype;
split.src="../app_themes/default/images/open.gif";
}
}
解决方案 »
- 谁知道如何把windows 应用程序嵌入web
- 想要改造系统,多用javascript实现酷的效果,请给推荐效果演示以及代码地址,我参考做。来者有分!感谢!
- 如何做一个允许鼠标移入的tooltip
- 为什么onchange自动跳转不跳转selected
- 为什么选择做IT培训教育
- js 正则匹配问题
- 还是继承的问题,求助
- 请教一个简单问题,我想在一个button的Onclick()事件里,使本页面超链接到另一个页面怎么做?谢谢。
- ActiveX 的 calendar 问题
- webpack vue 构建的项目,npm run build后 路径问题
- 我用DIV做的文本滚动 DIV我设了10000px长度,不知道有没有更好的办法
- 怎样设置ext中grid的左右滚动条,上下滚动条不出现
<div style="width:100%;height:100%">
<label class="leftLabel">
功能列表 <a href="#">葡・/a></label>
<!-- 在同一个TD里面。加入一个LABEL。可以防止IFRAME的横向レnィR条出ーs,去掉LABEL后横向レnィR条会出ーs -->
<iframe height="100%" width="100%" id="leftWindow" frameborder="0" src="Frameleft.aspx">
</iframe>
</div>
</td>
<div style="width:100%;height:100%" onmouseout="OutSplit();">
使用visibility吧
我是写在td里的,不行,,我就放div里了..
不知道哪位大湿有解决方法!
<tr>
<td class="frameLeft" id="left" valign="top" style="display: block;"><!-- ル女「!!! -->
<div style="width:100%;height:100%;margin:0px;border:0px;padding:0px;background:#aaa;z-index:1;">
<label class="leftLabel">
功能列表 <a href="#">葡・/a></label>
<!-- 在同一个TD里面。加入一个LABEL。可以防止IFRAME的横向レnィR条出ーs,去掉LABEL后横向レnィR条会出ーs -->
<iframe height="100%" width="100%" id="leftWindow" frameborder="0" src="Frameleft.aspx">
</iframe>
<div style="width:100%;height:110%;margin-top:-186px;z-index:2;filter:alpha(style=0,opacity=0);background:#fff" onmouseout="alert(1)"></div>
</div>
</td>
<td class="Noprint" style="width: 12px;">
<img id="split" src="../app_themes/default/images/open.gif" style="display: none"
alt="" onmouseover="OverSplit();" />
</td>
<td class="frameRight">
<iframe height="100%" width="100%" id="rightWindow" name="rightWindow" frameborder="0">
</iframe>
</td>
</tr>
</table>
可以这么解决:
检查鼠标移出时的目的对象toEl在不在td内部,如在td内部,不执行改变样式的方法,反之则执行;
至于捕获onmouseout事件的目的对象,可以用toEl = event.toElement获取,
再用left.contains(toEl)检查toEl是否在left之内。
<tr>
<td class="frameLeft" id="left" valign="top" style="display: block;" onmouseout="OutSplit();" onmouseover="OverSplit();"><!-- 这里!!! -->
<label class="leftLabel">功能列表 <a href="#">锁定</a></label>
<!-- 在同一个TD里面。加入一个LABEL。可以防止IFRAME的横向滚动条出现,去掉LABEL后横向滚动条会出现 -->
<iframe height="100%" width="100%" id="leftWindow" frameborder="0" src="http://g.cn">
</iframe>
</td>
<td class="Noprint" style="width: 12px;">
<img id="split" src="../app_themes/default/images/open.gif" style="display: none" alt="" onmouseover="" />
</td>
<td class="frameRight">
<iframe height="100%" width="100%" id="rightWindow" name="rightWindow" frameborder="0">
</iframe>
</td>
</tr>
</table>
<script type="text/javascript">
var timer = null;
function OutSplit(){
var ele = document.getElementById('left');
timer = setTimeout(function(){ele.style.display = 'none';},500);
}
function OverSplit(){
if(timer){
clearTimeout(timer);
}
}
</script>
这个在js里有个术语叫冒泡。
var timeOuter;
setTimeOuter
clearTimeOuter
你可以去搜索下。具体代码我没写,但是我看到实际的效果了。