Я попытался сделать эффект затухания JS с помощью функции setTimeout(), и он, похоже, работает в некоторой степени, но я не могу понять, что случилось с код ниже:Эффект затухания JS не работает (для цикла)
<html>
<head>
<title></title>
<script type="text/javascript">
function FadeEffect(n)
{
var i=1;
fade = document.getElementById("box");
if (n===1)
{
fade.style.opacity=i/10;
i++;
setTimeout("FadeEffect(1)",50);
if (fade.style.opacity=1)
{
var i=1;
}
}
else if (n===0)
{
fade.style.opacity=1-i/10;
i++;
setTimeout("FadeEffect(0)",50);
if (fade.style.opacity=0)
{
var i=1;
}
}
}
</script>
<style type="text/css">
#box{
width: 200px;
height: 50px;
border: 1px solid black;
background-color: #ccc;
opacity: 0;
}
</style>
</head>
<body>
<div onMouseOver="FadeEffect(1)" onMouseOut="FadeEffect(0)" id="box">Menu</div>
</body>
</html>
Редактировать: обновлен код с помощью функций setTimeout().
Вы можете попробовать jQuery. Это очень приятно, и вы можете легко добавлять эффекты к элементам. – omnidan
Спасибо за предложение, но на вопрос все еще не ответил. Видите, я новичок, и я действительно хочу все понять. – Onion
В своем вопросе вы говорите, что используете «setTimeout()», но нет никаких вызовов на «setTimeout()» в опубликованном вами коде. – Pointy