私は楽しみのためにJavaScriptを学んでいて、奇妙な問題を抱えています。独自のフェードイン機能を作成しようとしています。ただし、私のコードは機能しません。「コンテンツ」の div が完全に不透明に表示されるだけです。
setContentOpacity 関数は機能します。私はそれ自体をテストしましたが、魅力的に機能します。
理想的には、1000回の「setTimeout」呼び出しを「スタック」に配置する必要があります。最初の呼び出しでは、タイムアウトなしで不透明度を低く設定し、2番目の呼び出しでは、小さなタイムアウトで不透明度を少し高く設定します。 3000 タイムアウトで不透明度を 1000 に設定する最後の呼び出しまで。
基本的に、不透明度をすぐに 0 に設定し、1 秒で ~333、2 秒で ~666、3 秒で 1000 に設定する必要があります。ここで私の論理は正しいと思います。opacity を設定する呼び出しは、時間の経過とともにフェードイン効果を生み出す方法で解決する必要があります。
したがって、関連するコードは次のとおりです。
<script language='JavaScript' type='text/JavaScript'>
//takes a value from 0-1000
function setContentOpacity(value) {
document.getElementById('content').style.opacity = value/1000;
document.getElementById('content').style.filter = 'alpha(opacity=' + value/10 + ')';
}
function fadeInContent(){
setContentOpacity(0);
for (var i=0;i<=1000;i++)
{
setTimeout(function(){setContentOpacity(i);}, (i*3));
}
}
onload=fadeInContent;
</script>
(注:単純にsetTimeout(setContentOpacity(i)、(i * 3));を呼び出してみましたが、うまくいかないようで、匿名関数を使用するとわずかに良い結果が得られました)
ここで何が問題なのですか?前もって感謝します!