有人请帮助解释这个javascript代码,即发生了什么,代码是做什么的

时间:2016-02-03 21:27:53

标签: javascript

我不确定这段代码是什么意思,一位朋友给了我一个让颜色淡入和淡出的功能。但我想知道每一位有什么作用?

lerp = function(a, b, u) {
      return (1 - u) * a + u * b;
};


fade = function(element, property, start, end, duration) {
    var interval = 10;
    var steps = duration / interval;
    var step_u = 1.0 / steps;
    var u = 0.0;
    var theInterval = setInterval(function() {
        if (u >= 1.0) {
            clearInterval(theInterval)
        }
        var r = parseInt(lerp(start.r, end.r, u));
        var g = parseInt(lerp(start.g, end.g, u));
        var b = parseInt(lerp(start.b, end.b, u));
        var colorname = 'rgb(' + r + ',' + g + ',' + b + ')';
        element.style.setProperty(property, colorname);
        u += step_u;
    }, interval);
};

1 个答案:

答案 0 :(得分:0)

lerp是一个以百分比(0 - 1)计算两个值(a,b)之间的值(u)的函数。 interval是更新的缓慢程度,然后计算两种颜色之间的步数(步骤);然后它获得增加颜色之间百分比的数量(step_u)。 u是颜色之间的百分比,它使用setInterval在每个循环之间创建一个间隔为毫秒的循环,然后检查它是否应该 如果循环完成,则结束循环并使用clearInterval停止。 然后它将r,g,b定义为start和stop之间的颜色值,然后将元素颜色设置为rgb颜色;然后它会增加你。