我想在一系列背景颜色之间制作动画。
我找到了以下代码,但它使用 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);
});
我想删除 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);
});
答案 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);
});