2015-04-04 19 views
0

我一直致力于对网站的背景进行动画制作,并且我有一个可视化工具在它背后,所以我制作了两个列表,它们应该具有相同的颜色时间:同时改变fillStyle作为背景颜色

var frenzyModeColors = ["#BC49FF", "#574FFF", "#47FFF2", "#3AFF3D", "#9FFF4C", "#EFFF49", "#FF8A54", "#FF4C4C"]; 
var frenzyModeVisualizerColors = ["#FF6B83", "#FF8C3F", "#3D81FF", "#5BD3FF", "#FF962D", "#FF0004", "#FF4300", "#D8FF4F"]; 

但由于某些原因,可视化只是要疯了,不断切换色,而不是采取一种颜色,使当前的和新的

这里的平稳过渡是我的代码有:

//frenzy mode background 
function frenzyModeBG() { 
    window.requestAnimationFrame(frenzyModeBG); 
    if (frenzyMode == 1) { 
     $("#BGFrenzy").css("opacity", 1); 
     $("#visualizer").css("opacity", 1); 
     $("#BGFrenzy").animate({ backgroundColor : randomRgb() }, 2500); 
     ctx.fillStyle = frenzyModeVisualizerColors[BGcolor]; 
    } 
    else { 
     $("#BGFrenzy").css("opacity", 0); 
     $("#visualizer").css("opacity", 0.1); 
    } 
}; 

here's the website (进入媒体播放器的选项选项卡并激活狂潮模式看问题)

我已经试过这样做,而不是:

$("#BGFrenzy").animate({ backgroundColor : randomRgb() }, 2500, function(){ 
    ctx.fillStyle = frenzyModeVisualizerColors[BGcolor]; 
}); 

,但它仍然没有工作喜欢它应该是

我几乎积极,这是因为window.requestAnimationFrame(frenzyModeBG);,如果是这样的话,有没有其他简单的方法来做我想要实现的?

回答

0

我已经想通了,我已经更换
window.requestAnimationFrame(frenzyModeBG);

window.setInterval(function(){ frenzyModeBG() }, 7500);