jQuery动画背景颜色。删除Math.random

时间:2016-07-26 05:07:56

标签: javascript jquery html css random

我想在一系列背景颜色之间制作动画。

我找到了以下代码,但它使用 Math.random 以随机顺序显示背景颜色。

$(document).ready(function() {  
    setInterval(function() {
        var theColours = Array('#ffffff','#000000','#00ff00','#ff0000','#0000ff');
        var theColour = theColours[Math.floor(Math.random()*theColours.length)];
        $('#branding').animate({backgroundColor: theColour}, 500);
    }, 1000);
}); 

JSFiddle

我想删除 Math.random 并显示数组中的下一个颜色。

但是,如果我用以下内容替换 Math.random ,则动画不会超出阵列中的第一种颜色。

$(document).ready(function() {  
    setInterval(function() {
        var theColours = Array('#ffffff','#000000','#00ff00','#ff0000','#0000ff');
        var currentColour = 0;
        var theColour = theColours[Math.floor(currentColour++ % theColours.length)];
        $('#branding').animate({backgroundColor: theColour}, 500);
    }, 1000);
}); 

3 个答案:

答案 0 :(得分:1)

由于在// wont compile unless cast to LPVOID and not all data is sent. HttpSendRequest(hRequest, hdrs, -1, (LPVOID)fData.c_str(), fData.size()); // successfully sends all fData text TCHAR s[1024] = {0}; _tcscpy(s, fData.c_str()); HttpSendRequest(hRequest, hdrs, -1, s, sizeof(s)); 函数中声明了currentColour,因此每次调用函数时,您都会创建一个新的setInterval变量并将其设置为currentColour。而是将0移到函数范围之外:

currentColour

答案 1 :(得分:0)

问题是你在代码本身重新初始化'theColour'。

$(document).ready(function() {  
var currentColour = 0;
    setInterval(function() {
        var theColours = Array('#ffffff','#000000','#00ff00','#ff0000','#0000ff');            
        var theColour = theColours[Math.floor(currentColour++ % theColours.length)];
        $('#branding').animate({backgroundColor: theColour}, 500);
    }, 1000);
});

答案 2 :(得分:0)

您需要在函数setInterval中定义 currentColour

$(document).ready(function() { 
		var currentColour = 0;
    setInterval(function() {
        var theColours = Array('#ffffff','#000000','#00ff00','#ff0000','#0000ff');
        var theColour = theColours[Math.floor(currentColour++ % theColours.length)];
        $('#branding').animate({backgroundColor: theColour}, 500);
    }, 1000);
});