2016-10-18 3 views
0

毎時変更される背景イメージを持つサイトを作成しようとしています。私はバックグラウンドイメージをある時間帯に対応させたい。例えば、閉じた花芽の画像は12AMのサイトバックグラウンドであり、花芽の咲きの画像は12PMのサイトバックグラウンドである。背景イメージjQueryが動作していない、何が間違っていますか?

私は現在、これを実装している方法が正しいと確信しています。検査ではエラーは発生しませんが、背景イメージは表示されません。私は間違って何をしていますか? jQueryや別のコードを使用しているのですか?どんな助けでも大歓迎です。前もって感謝します。 setIntervalメソッドに提供されて

body { 
 
    margin-left: 5%; 
 
    margin-right: 5%; 
 
} 
 

 
#demo { 
 
    color: white; 
 
} 
 

 
#txt { 
 
    color: white; 
 
    float: left; 
 
    font-family: OpenSans; 
 
    font-size: 90px; 
 
    margin: 20px; 
 
} 
 

 
#weather { 
 
    color: white; 
 
    float: right; 
 
    font-family: OpenSans; 
 
    font-size: 40px; 
 
    margin: 20px; 
 
}
<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <title>Blooming Time And Temperature</title> 
 
    <link href="css/format.css" rel="stylesheet"/> 
 
    <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet"> 
 
    <script> 
 
      function startTime() { 
 
     document.getElementById('txt').innerHTML = 
 
      moment().format("hh:mm A"); 
 
     var t = setTimeout(startTime, 1000); 
 
     var hour = moment().hour() 
 
     } 
 
    </script> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
    <script> 
 
      $(document).ready(function() { 
 

 
      setInterval(function(){ 
 
       var hour = new Date().getHours(); 
 
       if(hour > 7 && hour <= 12) 
 
       { 
 
       // It's morning 
 
       $('body').css('background', 'url(http://www.magic4walls.com/wp-content/uploads/2015/11/Macro-of-water-droplets-on-pink-lotus-flower-blooming-in-early-morning.jpg) no-repeat'); 
 
       } 
 
       else if(hour > 12 && hour < 18) 
 
       { 
 
       // It's noon 
 
       $('body').css('background', 'url(http://www.magic4walls.com/wp-content/uploads/2015/11/Macro-of-water-droplets-on-pink-lotus-flower-blooming-in-early-morning.jpg) no-repeat'); 
 
       } 
 
       else 
 
       { 
 
        // It's night 
 
        $('body').css('background', 'url(http://www.magic4walls.com/wp-content/uploads/2015/11/Macro-of-water-droplets-on-pink-lotus-flower-blooming-in-early-morning.jpg) no-repeat'); 
 
       } 
 
      }, 1000 * 60 *60); 
 

 
     }); 
 
    </script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.simpleWeather/3.1.0/jquery.simpleWeather.min.js"></script> 
 
    <script> 
 
     $(document).ready(function() { 
 
     $.simpleWeather({ 
 
      location: 'Brooklyn, NY', 
 
      woeid: '', 
 
      unit: 'f', 
 
      success: function(weather) { 
 
      html = '<p>'+weather.temp+'&deg;'+weather.units.temp+'</p>'; 
 
      html += '<div id="city">'+weather.city+', '+weather.region+'</div>'; 
 

 
      $("#weather").html(html); 
 
      }, 
 
      error: function(error) { 
 
      $("#weather").html('<p>'+error+'</p>'); 
 
      } 
 
     }); 
 
     }); 
 
    </script> 
 
    </head> 
 
    <body onload="startTime()""> 
 
    <div id="txt"></div> 
 
    <div id="weather"></div> 
 
    </body> 
 
</html>

+0

動作するかどうか1時間待っていましたか? – adeneo

+2

コードは最初の1時間後に機能します。間隔時間を減らして、動作することを確認してください。 – saulotoledo

答えて

3

機能は、(1時間)で指定した時間後に初めて起動されます。それを変更するには:

function changeBackground(){ 
       var hour = new Date().getHours(); 
       if(hour > 7 && hour <= 12) 
       { 
       // It's morning 
       $('body').css('background', 'url(http://www.magic4walls.com/wp-content/uploads/2015/11/Macro-of-water-droplets-on-pink-lotus-flower-blooming-in-early-morning.jpg) no-repeat'); 
       } 
       else if(hour > 12 && hour < 18) 
       { 
       // It's noon 
       $('body').css('background', 'url(http://www.magic4walls.com/wp-content/uploads/2015/11/Macro-of-water-droplets-on-pink-lotus-flower-blooming-in-early-morning.jpg) no-repeat'); 
       } 
       else 
       { 
        // It's night 
        $('body').css('background', 'url(http://www.magic4walls.com/wp-content/uploads/2015/11/Macro-of-water-droplets-on-pink-lotus-flower-blooming-in-early-morning.jpg) no-repeat'); 
       } 
      } 
    changeBackground(); // invoke for the first time manually 
    setInterval(changeBackground, 1000 * 60 * 60); 
+0

これはコメントである必要があります。答えはありません。 – Dekel

+1

@Dekelこれはコードが機能していないためです。回答は有効です – DaniP

+0

確かに - > https://jsfiddle.net/adeneo/2g3eveh8/ – adeneo

関連する問題