1

我有一个淡化元素的 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

在 Google Chrome 中,它不会完全消失。似乎循环卡住了,style.opacity 永远不会达到 0。

在 StackOverflow 上,这似乎是 Google Chrome 一年前的一个错误,但从未真正得到证实。

看起来很奇怪,因为这将是一个主要错误。有人知道为什么它在谷歌浏览器中不起作用吗?

4

1 回答 1

4

这似乎是一个精度问题。.toFixed通过使用所需的精度,您可以很容易地绕过它。

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

http://jsfiddle.net/GgPqc/

于 2013-05-14T17:57:58.160 回答