2017-05-24 25 views
0

JavaScriptのスクリプトは、自分のHTMLページの背景イメージを絶えず変更することを意図しています。javascriptで背景を変える背景を作る方法

function CB() { 
try { 
    var p = { 
     Pic1: 'Images/CoolPic2.jpg', 
     Pic2: 'Images/CoolPic3.jpg', 
     Pic3: 'Images/CoolPic4.jpg' 
    }; 
    var l = p.length; 
    i = 0; 
    while (i < l) { 
     setTimeout(function(){document.body.style.backgroundImage = url(p[i]); }, 3000) 
     i += 1; 
     if (i > l) { 
      i -= l; 
      } 
    } 
} 
catch(err) { 
    alert(err.message); 
} 
} 
+0

pが対象です... pは配列でなければなりません? – NightKn8

+0

私はこの方法でデータを保存する方法しか知りません。 – Neuranium

+0

'p.length'はオブジェクトであるため定義されていません。 – doutriforce

答えて

1

whileループは必要ありません。 setTimeoutではなくsetIntervalを使用してください(これは3秒ごとに関数を呼び出します)。 OKこの

function CB() { 
 
    try { 
 
     var p = [ 
 
      'Images/CoolPic2.jpg', 
 
      'Images/CoolPic3.jpg', 
 
      'Images/CoolPic4.jpg' 
 
     ]; 
 

 
     var counter = 0; 
 

 
     setInterval(function(){ 
 
      //document.body.style.backgroundImage = url(p[counter++]); 
 
      console.log(counter++); 
 

 
      if(counter == 3){ 
 
       counter = 0; 
 
      } 
 
     }, 3000) 
 
    } catch(err) { 
 
     alert(err.message); 
 
    } 
 
} 
 

 
CB();

+0

ありがとう!それは魅力のように働いた! – Neuranium

0

をこのようにしてみ縫い目:に基づいて

let i = 1; // = 1 because we want to load first color/image onload 
 
const color = ["black", "blue", "brown", "green"]; //change colors to url's 
 
change =() => { 
 
    document.body.style.backgroundColor = color[i];//change to background= url(color[i]) 
 
    i = (i + 1) % color.length; 
 
} 
 
document.body.style.backgroundColor = color[0]; // this will load first collor/image 
 
setInterval(change, 3000);

LINK

関連する問題