2016-06-20 1 views
0

だから、基本的にはそこに交通光とされると、それはしかし、それは動作していないCSSのスライドショーを使用して、各画像を通過するはずのスクリプトは、画像を循環されていない

<head> 
<script type="text/javascript"> 
var Picture1 = new Image() 
Picture1.src = "Traffic_Red.png" 
var Picture2 = new Image() 
Picture2.src = "Traffic_Amber.png" 
var Picture3 = new Image() 
Picture3.src = "Traffic_Green.png" 
var Picture4 = new Image() 
Picture4.src = "Traffic_Amber.png" 
</script> 
</head> 
<body> 
<p><img src="Traffic_Red.png" width="500" height="300" name="slide" /></p> 




<script type="text/javascript"> 
     var step=1; 
     function slideit() 
     { 
      document.images.slide.src = eval("image"+step+".src"); 
      if(step<4) 
       step++; 
      else 
       step=1; 
      setTimeout("slideit()",3000); 
     } 
     slideit(); 
</script> 
</body> 
+0

'のsetTimeout( "slideitを()"、3000);'でなければなりません'setTimeout(slideit、3000);' –

+0

これはAlon Eitanによって投稿された以前の質問とほとんど同じです。これはコースからのものですか? – Tigger

答えて

0
eval("image"+step+".src"); 

ですから、image1.src

var Picture1 = new Image() 
にアクセスしようとしています

...でも、それはPicture1ではなく、image1と呼ばれています。

変数名を正しく取得するだけで済みます。言い換えれば、evalを使用して可変変数を作成するのはひどいです。ちょうど配列を使用してください。

画像のname属性の代わりに、idが推奨されています。

setTimeoutは、評価される文字列よりも機能が優れています。

<p><img src="Traffic_Red.png" width="500" height="300" id="slide" /></p> 

<script> 
    var pictures = [new Image(), new Image(), new Image(), new Image()]; 
    pictures[0].src = "Traffic_Red.png"; 
    pictures[1].src = "Traffic_Amber.png"; 
    pictures[2].src = "Traffic_Green.png"; 
    pictures[3].src = "Traffic_Amber.png"; 


    var step=0; 
    function slideit() { 
     document.getElementById('slide").src = pictures[step].src; 
     step++; 
     if (step >= 4) { 
      step = 0; 
     } 
     setTimeout("slideit", 3000); 
    } 

    slideit(); 
</script> 
0

変数名をPicture1、Picture2、Picture3 ....からimage1、image2、image3に変更するだけでEx;

置き換えます

<head> 
<script type="text/javascript"> 
    var Picture1 = new Image() 
    Picture1.src = "Traffic_Red.png" 
    var Picture2 = new Image() 
    Picture2.src = "Traffic_Amber.png" 
    var Picture3 = new Image() 
    Picture3.src = "Traffic_Green.png" 
    var Picture4 = new Image() 
    Picture4.src = "Traffic_Amber.png" 
</script> 
</head> 

で:

<head> 
    <title>Test</title> 
    <script type="text/javascript"> 
     var image1 = new Image() 
     image1.src = "Traffic_Red.png" 
     var image2 = new Image() 
     image2.src = "Traffic_Amber.png" 
     var image3 = new Image() 
     image3.src = "Traffic_Green.png" 
     var image4 = new Image() 
     image4.src = "Traffic_Amber.png" 
    </script> 
</head> 

とスクリプトは以下の希望:

<script type="text/javascript"> 
     var step=1; 
     function slideit() 
     { 
      document.images.slide.src = eval("image"+step+".src"); 
      step++; 
      if (step > 4) { 
       step = 1; 
      } 
      setTimeout("slideit()",3000); 
     } 
     slideit(); 
</script> 
関連する問題