谷歌Chrome JavaScript淡化:style.opacity和setTimeout

时间:2013-05-14 17:49:19

标签: javascript google-chrome

我有一个淡化元素的JavaScript脚本。

要点就是:

function fade() {
    if (cat.style.opacity > 0) {
        // decrease opacity slightly
        cat.style.opacity -= 0.1;

        // call fade again in a fraction of a second
        setTimeout( fade, 60 );
    } else { 
        cat.style.visibility = "hidden";
    }
}

(完整代码http://xahlee.info/js/js_fadeout.html,JavaScript代码:http://xahlee.info/js/js_fadeout.js

在谷歌浏览器中,它不会完全消失。似乎循环卡住了,style.opacity永远不会达到0。

在StackOverflow上,它似乎是一年前一篇帖子中的Google Chrome错误,但从未真正确认过。

似乎很奇怪,因为这将是一个主要的错误。有人知道为什么它在Google Chrome中不起作用吗?

1 个答案:

答案 0 :(得分:4)

这似乎是一个精确的问题。通过使用.toFixed来获得所需的精度,您可以非常轻松地绕过它。

cat.style.opacity = (cat.style.opacity - 0.1).toFixed(2);

http://jsfiddle.net/GgPqc/