重複の可能性:
JavaScript の数学は壊れていますか?
ループの動作がおかしいという問題があります。
var duration = 1000; /* 1000 millisecond fade = 1 sec */
var steps = 20; /* number of opacity intervals */
var delay = 5000; /* 5 sec delay before fading out */
function fadeOut(eid) {
for (i = 0; i <= 1; i += (1 / steps)) {
setTimeout("setOpacity(" + (1 - i) + ",'"+eid+"')", i * duration);
console.log("i="+i);
}
}
そして、console.log を使用してループで何が起こっているかを確認しましたが、非常に奇妙なことがわかりました。
i=0
i=0.05
i=0.1
i=0.15000000000000002
i=0.2
i=0.25
i=0.3
i=0.35
i=0.39999999999999997
i=0.44999999999999996
i=0.49999999999999994
i=0.5499999999999999
i=0.6
i=0.65
i=0.7000000000000001
i=0.7500000000000001
i=0.8000000000000002
i=0.8500000000000002
i=0.9000000000000002
i=0.9500000000000003