2016-06-30 19 views
3

私はJavaScriptが新しく、タイムインターバルとCSSクラスの変更で自動バックグラウンドチェンジャーを作りたいと思います。現時点では、私のコードは2つの背景を意図した通りに循環させません。あなたは何が間違っているかを確認できますか?JavaScript - CSSクラスとsetIntervalメソッドを使用した背景変更

ありがとうございます!

$(document).ready(function() { 

    var switcher = 0; 

    var counter = setInterval(count, 2000); 

    function count() { 
    switcher = switcher + 1; 
    if (switcher >= 2) { 
     switcher = 0; 
     return; 
    }; 
    }; 


    switch (switcher) { 

    case 0: 
     $("#main-content").removeClass("background1"); 
     $("#main-content").addClass("background3"); 
     break; 

    case 1: 
     $("#main-content").removeClass("background3"); 
     $("#main-content").addClass("background1"); 
     break; 


    }; 
}); 
+0

は 'スイッチを移動します'count()'関数にブロックします...ちなみに、あなたの現在のインクリメントとifテストは 'switcher =(switcher + 1)%2'に置き換えられます。しかし、可能なオプションが2つしかない場合は、ブール値を使用できます。 – nnnnnn

+0

htmlスニペットを追加.. – DiniZx

+0

同じものに対してjsfiddleを作成できますか? – DiniZx

答えて

0

switch()文を区間関数コールバックに移動します。 returnも削除してください。あなたがtoggleClassを使用していないのはなぜ

function count() { 
    switcher = switcher + 1; 
    if (switcher >= 2) { 
     switcher = 0; 
    }; 
    switch (switcher) { 

     case 0: 
      $("#main-content").removeClass("background1"); 
      $("#main-content").addClass("background3"); 
      break; 

     case 1: 
      $("#main-content").removeClass("background3"); 
      $("#main-content").addClass("background1"); 
      break; 
    }; 

}; 
+0

魅力的な作品です!ありがとう! – canyin

1

、それは非常にクリーンです:

$(function() { 
    var switcher = 0; 
    var counter = setInterval(count, 2000); 

    function count() { 
     $("#main-content").toggleClass("background1 background3") 
    }; 
}); 

ちょうどあなたがdiv要素にデフォルトのクラスを割り当てることを確認してください:

<div id="main-content" class="background1"> 

</div> 
関連する問題