setTimeout()関数でJSフェード効果を試したところ、ある程度は機能していたように見えましたが、何が問題なのかわからないようです以下のコード: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