0

一定時間後にボタンの色を変更し、配列を使用してそれを制御しながら通常にフェードバックしたいと考えています。私はこれまでこれを行ってきました:

<input id="q" type="button" value="Q" style="width:50px;height:50px;color:#ffffff;background-color:#5142F5;border-color:#1BE0DD"/>


<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript">
var array[0,1,0];

setTimeout(
    function(){
      array.splice(0,1,1)
      switcher()
    }, 600);

function switcher(){
switch(array[0]){
case 0:
    $('#q').css('background-color', '#5142F5');
    break;
case 1:
    $('#q').animate({backgroundColor: "#F8FF2B"},400);
    setTimeout(
    function(){
      $('#q').animate({backgroundColor: '#5142F5'},400);
    }, 600);
    setTimeout(
    function(){
      array.splice(0,1,0)
    }, 1000);
    break;
}
}
</script>

しかし、何らかの理由で機能しません。私は何かを逃していますか?

4

2 に答える 2

2

jQuery animate は背景色のアニメーションをサポートしていないため、カラー プラグインを含める必要があります

ドキュメントから

ただし、jQuery.Color() プラグインを使用しない限り、background-color は使用できません)。

試す

var array = [0,1]

setInterval(switcher, 1500);

function switcher(){
    var val  = array.splice(0, 1)[0];
    switch(val){
        case 0:
            $('#q').stop(true, true).css('background-color', '#5142F5');
            break;
        case 1:
            $('#q').stop(true, true).animate({backgroundColor: "#F8FF2B"}, 400);
            break;
    }
    array.push(val);
}

デモ:フィドル

于 2013-06-24T11:35:01.457 に答える
1

array定義に誤りがあるようです:

var array[0,1,0]

でなければなりません:

var array = [0,1,0];

それとも単に「タイプミス」なのかもしれません

于 2013-06-24T11:17:08.123 に答える