Я пытаюсь сделать div, который появляется на мыши над его родительским div и исчезает при мыши. Но когда я ввел мышь в эту область div, она не показывала ясного увеличения высоты, а ее высота мерцала вверх и вниз непрерывно даже при небольшом движении мыши в пределах области (т. Е. Мышь не была выведена из области при скольжении).события mouseover и mouseout в javascript не работают надлежащим образом
См рабочий код: 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>
Вы должны удалить декларации 'onmouseover' и' onmouseout' в HTML на своей скрипке, поскольку они больше не используются. – tkone
Кроме того, возможно, самый простой способ исправить - просто добавить «указатель-события: нет» в CSS для '# inner', но я отвлекся :) – tkone
я забыл удалить вызовы из HTML :), и вы можете будь прав про самый простой способ, но с jquery проще, поскольку у вас есть фреймворк, делающий анимацию для вас, в конце концов, лучший способ зависит от цели кода? –