2015-02-06 2 views
0

Я хочу создать анимированную кнопку, изменив ее цвет фона на регулярном интервале автоматически. Я использовал следующие Javascript:изменение фона кнопки автоматически на регулярном интервале в javascript

var colors = new Array("Red", "GreenYellow", "Fuchsia", "OrangeRed", "Yellow", "Blue", "Navy", "MediumSpringGreen", "Lime", "SteelBlue"); 
function bcAnimation(y){ 
    var x; 
    x=y; 
    x.style.backgroundColor = colors[Math.floor(Math.random()*10)]; 
    setTimeout(bcAnimation(x), 2000); 
} 


вложенная вызова не работает. кнопка изменяется один раз. Я назвал функцию из тела тега:

<body onload='bcAnimation(document.getElementById("x"));'> 


Я также попытался это с помощью кнопки OnClick событие. Что мне не хватает?

+0

Помог ли вам любой из ответов и ответили на ваш вопрос? Если нет, сообщите нам, чтобы мы могли больше помочь. Если это так, пожалуйста, отметьте наиболее полезный ответ как «принятый». Благодаря! –

+0

спасибо. Проблема решена. – Asif

+0

Спасибо! Вы можете принять ответ, нажав галочку под подсчетом голосов. –

ответ

0

Попробуйте вместо

setTimeout(function(){ bcAnimation(x); }, 2000); 
+0

Спасибо за драгоценное решение .. – Asif

0

Почему не только упростить все дело в:

var colors = new Array("Red", "GreenYellow", "Fuchsia", "OrangeRed", "Yellow", "Blue", "Navy", "MediumSpringGreen", "Lime", "SteelBlue"); 
 
setInterval(function() { 
 
    x.style.backgroundColor = colors[Math.floor(Math.random() * 10)]; 
 
}, 2000)
<button id="x">button</button>

0

$(function() { 
 
    var curColor = 0; 
 
    var colors = new Array("Red", "GreenYellow", "Fuchsia", "OrangeRed", "Yellow", "Blue", "Navy", "MediumSpringGreen", "Lime", "SteelBlue"); 
 
    setInterval(function() { 
 
     $('button.colors').css('background-color', colors[curColor]); 
 
     curColor += 1; 
 
     if (curColor >= colors.length) { 
 
      curColor = 0; 
 
     } 
 
    }, 500); 
 
});
button.colors { 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button class="colors"> :D </button>