2017-10-16 71 views
0

我是一名JavaScript初学者,请耐心等待。计数功能执行

我想写一个函数,每次调用时都会改变对象的颜色。

下面是代码:

var i = 0; 
    var colors=["blue","red","green","yellow","lime"]; 
    function changeColor(a, colors) { 
     if (i==4) { 
      i=0; 
     } 
     a.style.color=colors[i]; 
     i++; 
     } 

我需要一个计数器,以便它可以通过阵列(颜色),迭代时,它的调用。 那么,如何更新全局声明的变量ichangeColor函数。提前致谢!

+2

你究竟如何已经完成它。 – Teemu

回答

0

你的代码应该可以正常工作。我建议一个较短的方式,使用I =(I 1)%5将返回0,当我1是5

var i = 0; 
var colors=["blue","red","green","yellow","lime"]; 
function changeColor(a, colors) { 
    i = (i +1)%colors.length; 
    a.style.color=colors[i]; 
} 

从0迭代i到4如@ guest271314以下建议,我改变数字设置为colors.length,以使其对颜色数组的大小更加灵活。

+1

_“你的代码应该可以正常工作,我提出了一个更短的方法来迭代我从0到3”_注意,在Question的代码中数组'.length'是'5' – guest271314

0

要在指数4达到"lime"然后"blue"索引0可以前if条件中设定的color值和使用else声明

var i = 0; 
 
var colors = ["blue", "red", "green", "yellow", "lime"]; 
 

 
function changeColor(colors) { 
 
    document.body.style.color = colors[i]; 
 
    if (i == 4) { 
 
    i = 0; 
 
    } else { 
 
    i++; 
 
    } 
 
} 
 

 
setInterval(function() { 
 
    document.body.textContent = i; 
 
    changeColor(colors); 
 
}, 1500)
body { 
 
    width: 100vw; 
 
    height: 100vh; 
 
    font-weight: 36px; 
 
}