【发布时间】:2014-01-14 18:08:55
【问题描述】:
我正在尝试制作一个 div,它在鼠标悬停在其父 div 上时弹出并在鼠标移出时消失。但是当我在那个 div 区域中输入鼠标时,它并没有显示出明显的高度增加,而是即使鼠标在该区域内轻微移动,它的高度也会不断上下闪烁(即鼠标没有被带出该区域滑动时)。
查看工作代码:http://jsfiddle.net/ankur3291/xN5bS/
首先,我想知道 mouseover 和 mouseout 事件是如何工作的(它们的真正含义),其次,它的补救措施是什么?我基本上是在纯 javascript 中找到解决方案,但 jQuery 代码也是可观的。请参阅下面的完整代码:
<!DOCTYPE html>
<html>
<head>
<title>js height check</title>
<style type="text/css">
#box{display:block;height:200px;width:200px;border:1px solid #000;position:relative;}
#inner{display:none;height:0;opacity:0.6;background-color:#000;width:200px;position:absolute;bottom:0;}
</style>
<script type="text/javascript">
function heightUp()
{
var h=20;
var obj=document.getElementById("inner");
obj.style.display="block";
function frame()
{
h=h+5;
obj.style.height=h+"px";
if(h>=150)
clearInterval(timer1);
}
var timer1=setInterval(frame,10);
}
function heightDown()
{
var obj=document.getElementById("inner");
var h=parseInt(obj.style.height);
document.getElementById("matter").innerHTML=h;
function frame()
{
h=h-5;
obj.style.height=h+"px";
if(h>=30)
{
obj.style.display="none";
clearInterval(timer2);
}
}
var timer2=setInterval(frame,10);
//obj.style.height-=100+'px';
}
</script>
</head>
<body>
<div id="box" onmouseover="heightUp()" onmouseout="heightDown()">
<div id="inner">
</div>
</div>
<p id="matter">h</p>
</body>
</html>
【问题讨论】:
标签: javascript jquery css