[英]Javascript - onmouseout doesn't fire when using z-index
当对象在另一个元素上方时,似乎似乎无法触发onmouseout。 在我的示例中,移至右侧的顶部或底部会立即触发mouseout事件,但是移至左侧则不会触发。
<html>
<head>
<script type="text/javascript">
var viewedCont;
function view_img(){
viewedCont = document.getElementById('view-container');
viewedCont.style.display='block';
}
function view_img_stop(){
viewedCont.style.display='none';
}
</script>
<style>
$css_inPage
#roll{
z-index:100;
background-color:#0000CC;
height:400px;
width:200px;
}
#view-container{
display:none;
width:355px;
height:402px;
z-index:9999;
position:absolute;
overflow:hidden;
background-color:#CCCCCC;
margin-left:230px;
margin-bottom:90px;
}
</style>
</head>
<body>
<div id="view-container" onmouseout="view_img_stop()">
</div>
<div style="margin-left:200px">
<div id="roll" onmouseover="view_img();"></div>
</div>
</body>
</html>
发生这种情况的原因是,当您向左移动时,第一个触发事件是#view-container的onmouseout试图将其消失。 但是,在消失之前,您已经移至#roll的一小部分,并且#roll事件onmouseover也将在上一个事件之后触发,并再次显示#view-container。 因此,您基本上需要处理#roll的onmouseout事件,或使#view-container覆盖#roll的整个部分。
所以修改它,以便我认为它将按您的意愿工作,
<body>
<div id="view-container" onmouseout="view_img_stop()" onmouseover="view_img();">
</div>
<div style="margin-left:200px">
<div id="roll" onmouseover="view_img();" onmouseout="view_img_stop()"></div>
</div>
</body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.