因此,使用 TweenJS 或 TweenMax(或 TweenLite)补间颜色非常容易。我将使用 TweenMax 来展示这一点,主要是因为当没有伪代码逻辑时,伪代码很难。假设您有一个文本元素:
<p id="text">This is some text to colorize</p>
#f00
您可以在两秒钟内将文本的颜色补间为红色 ( ),如下所示:
var textEl = document.getElementById('text');
TweenMax.to(textEl, 2, {color: '#f00'});
就循环而言,您可以向onComplete
补间发送一个处理程序,该处理程序将在补间完成时触发。这将导致它在红色和黑色之间循环:
var textEl = document.getElementById('text');
function toRed() {
TweenMax.to(textEl, 2, {color: '#f00', onComplete: toBlack});
}
function toBlack() {
TweenMax.to(textEl, 2, {color: '#000', onComplete: toRed});
}
toRed();
这是一个 CodePen展示了这一点。
如果你想让它更紧凑一点,你可以通过翻转colorFrom
and来循环colorTo
:
function cycle(colorFrom, colorTo) {
TweenMax.to(textEl, 2, {color: colorTo, onComplete: function() {
cycle(colorTo, colorFrom);
}});
}
cycle('#000', '#F00');
在其他补间库中做同样的事情变得非常相似。
在点击时执行此循环的伪代码可能如下所示:
ON_CLICK:
ShowCycle = !ShowCycle;
IF ShowCycle
TweenHandle = cycle( RED, BLACK )
ELSE
IF EXISTS TweenHandle
cancelCycle( TweenHandle )
TweenHandle = null
END IF
END IF