2017-10-27 6 views
-5

私はJavaScriptには新しく、この特定のスクリプトは私が取り組んでいるプロジェクトのJSになければなりません。私は毎晩Javascriptで背景色を変更したい

午前中に1つのバックグラウンド、1日にもう1つ、夜に別のバックグラウンドを持ちたいと思います。これは私のスクリプトですが、私のページには何も表示されていません。この例では、単にテキストを印刷しています。どうしましたか?

var t = date("H"); 
 

 
if (var t < "10") { 
 
    document.write("Have a good morning!"); 
 
} elseif (var t < "20") { 
 
    document.write("Have a good day!"); 
 
} else { 
 
    document.write("Have a good night!"); 
 
}

私は同様の問題のためにStackOverflowの上で閲覧していることに注意してくださいしかし、私はどんな...私はまた私のJSを通じて読んだマニュアルを見つけることができませんでしたが、私は見つけることができません問題。

+2

は、ブラウザのコンソールを見てください。あなたには多くの誤りがあります。 – Turnip

+1

[Javascriptの現在の時間で特定のスタイルシートを使用できますか?](https://stackoverflow.com/questions/5870098/javascript-current-hour-to-use-specific-stylesheet) – Remi

答えて

1

簡単なモックアップです。

現地時間に応じて、背景色とテキストが変更されます。

私はまた、毎分再チェックするようにしました。したがって、ページを開いたままにすると、時間が変わると色が変わります。

もう少し努力すれば、日中に色をトゥイーンにすることもできます。

私もdocument.writeを削除しました。これは悪い習慣では使用しないでください。ここでは、テキストを表示するためにdivにquerySelectorを使用しました。

function updateBackground() { 
 
    var 
 
    hr = (new Date()).getHours(), 
 
    body = document.body, 
 
    bstyle = body.style,  
 
    hello = document.querySelector(".hello");  
 
    if (hr < 10) { 
 
    bstyle.backgroundColor = "yellow"; 
 
    bstyle.color = "black"; 
 
    hello.innerText = "Have a good morning"; 
 
    } else if (hr < 20) { 
 
    bstyle.backgroundColor = "green"; 
 
    bstyle.color = "white"; 
 
    hello.innerText ="Have a good day!"; 
 
    } else { 
 
    bstyle.backgroundColor = "black"; 
 
    bstyle.color = "white"; 
 
    hello.innerText = "Have a good night!"; 
 
    } 
 
} 
 

 
setInterval(updateBackground, 1000 * 60); 
 
updateBackground();
.hello { 
 
    font-size: 4em; 
 
}
<div class="hello"></div>

3

JavaScriptにはいくつかの問題があります。ブラウザでコンソールを開いて、役立つエラーメッセージを表示してみてください。以下

修正されたコード:

<script> 
 
var t = new Date().getHours(); 
 

 
if (t < 10) { 
 
    document.write("Have a good morning!"); 
 
} else if (t < 20) { 
 
    document.write("Have a good day!"); 
 
} else { 
 
    document.write("Have a good night!"); 
 
} 
 
</script>

1

があなたのためにあなたの宿題を完了:)

var t = new Date().getHours(); 
 
if (t < 10) { 
 
    document.write("Have a good morning!"); 
 
    document.body.style.backgroundColor="yellow"; 
 
} else if (t < 20) { 
 
    document.write("Have a good evening!"); 
 
    document.body.style.backgroundColor="orange"; 
 
} else { 
 
    document.write("Have a good night!"); 
 
    document.body.style.backgroundColor="grey"; 
 
}

0123についての詳細をご覧くださいはjavaScriptの関数https://www.w3schools.com/jsref/jsref_gethours.asp

+0

ありがとう、私は不器用な間違いを見落としたようです私は学生ではなく、単なる自己教える人ではありません。 – ArabianMaiden

-3

ここではjQueryを使用した簡単な例を示します。ここで

$(function() { 

    var current_date = new Date(); 
    var hour = current_date.getHours(); 

    if(hour < 10) { 
    $('body').addClass('day'); 
    } else { 
    $('body').addClass('midday'); 
    } 

}); 

https://codepen.io/Pauloscorps/pen/BmBGoe

+2

jQueryについて誰がコメントしましたか?なぜこのような単純なタスクのために巨大なライブラリを使いたいのですか? – Turnip

+1

さらに、この男は基本的な構文に苦しんでいます。 –

-2
var x = new Date().getHours(); 

if(x < 10){ 
// add background for morning 
} 



else if(x > 10 && x < 19){ 
// add background for day 
} 

else if(x > 19){ 
// add background for Night 
} 
+3

答えにいくつかの説明を追加することを検討してください。コードだけではうまく見えない –

+0

コードの間違いを教えてください。その単純なsudoコードは背景画像を変更します –

+0

私のコメントはコードに関するものではなく、あなたの投稿に関するものです。これは質問に対する答えです。 topicasterのコードとあなたのソリューションの間違いに関するテキストの説明を提供すれば、はるかに良く見えます。 コードは一目瞭然です。しかし、ifsのカスケードの代わりにswitchを使う –

関連する問題