2016-10-20 10 views
0

3秒ごとに自動的に画像を変更する広告を作成する必要があります。これは今まで私が行ってきたことですが、どこに行き終わるのかがわかりません。 1. currentImageという変数を1に設定して宣言します。 2. autoAdvanceという名前の変数を宣言し、ChangeAd() 3秒ごとに機能します。 3. ChangeAd()という名前の関数を作成します。 4.この関数では、ケースストラクチャを使用して、表示する次の広告を決定します。 - switch文でcurrentImage変数を使用します。 - ケース1の場合:最初のimg要素のソースを "concert2.gif"に設定し、次にcurrentImage変数を2に設定します。 - ケース2の場合:最初のimg要素のソースを "concert3.gif"に設定してからcurrentImage変数を3に設定します。 - ケース3の場合:最初のimg要素のソースを "concert4.gif"に設定し、次にcurrentImage変数を4に設定します。 - ケース4の場合:最初のimg要素のソースを " concert5.gif "に設定し、currentImage変数を5に設定します。 - ケース5の場合:最初のimg要素のソースを" concert1.gif "に設定し、currentImage変数を1に設定します。 必要に応じてbreak文を含めます。JavaScript - switch文を使用して3秒ごとに変更される広告を作成する

[編集]

<p><img src="concert1.gif" id="img" height="60" width="370" alt="Changing advertising image" /></p> 
<script> 
    "use strict"; 
    var currentImage = 1; 
    var autoAdvance = setInterval(ChangeAd, 3000); 

    function ChangeAd(currentImage) { 
    var image = document.getElementsByTagName("img"); 
    switch(currentImage){ 
     case 1: 
      currentImage = 2; 
      return "concert2.gif"; 
      break; 
     case 2: 
      curentImage = 3; 
      return "concert3.gif"; 
      break; 
     case 3: 
      currentImage = 4; 
      return "concert4.gif"; 
      break; 
     case 4: 
      currentImage = 5; 
      return "concert5.gif"; 
      break; 
     case 5: 
      currentImage = 1; 
      return "concert1.gif"; 
      break; 
    } 

    } 
</script> 
+2

を使用するかもしれないgetElementsByTagName以外のものを使用する必要がありますが、[エラーについて、コンソールをチェックされていますか?]があります(http://stackoverflow.com/documentation/javascript/185/hello-world/714/ using-console-log#t = 201610202230529157306)今、構文エラーがあります。また、pro-tipでは、文字列を 'setTimeout'や' setInterval'に渡さないでください。ちょうど 'setTimeout(ChangeAd、3000)'をしてください。 –

+0

@ Alex204 - これは並べ替えのようです。あなたが何を望んでいるのか、あなたがどこにいらっしゃるのかをもっと説明してください。それはあなたにはいくつかの構文と実行の問題がありますが、このコードは何をしているのか、変更したくないのですか? –

+0

@CristianCavalli私は自分の要件を追加しました。私はそれらをほとんど満たしました。それを終了する方法は分かりませんでした。 – Alex204

答えて

0

これは動作するはずです。私はすべての画像パスを持つ配列を作成し、それを繰り返しています。 おそらくgetElementById代わり

var images = ["concert2.gif", "concert3.gif", "concert4.gif", "concert5.gif", "concert1.gif"]; 
var image = document.getElementsByTagName("img"); 
var currentImage = 0; 

var autoAdvance = setInterval(ChangeAd, 3000); 

function ChangeAd() { 
    image.src= images[currentImage]; 
    currentImage ++; 
    if(currentImage == images.length) currentImage = 0; 
} 
+0

ありがとうございましたが、switch文を使用する必要があります – Alex204

+1

@ Alex204これは愚かな要求です。私はそこに1つ働こうとします。 – Kolby

+0

すばらしい答え!これをChangeAd()関数の最初の行として追加して、最初からイメージを再起動することができます。if(currentImage> = images.length)currentimage = 0; – Orilux

関連する問題