【问题标题】:Changing the background-color at different hours of the day in JavaScript? [closed]在 JavaScript 中的不同时间更改背景颜色? [关闭]
【发布时间】:2017-10-27 10:25:46
【问题描述】:

如何在一天中的不同时间更改body 背景颜色?

这是我的脚本,但我的页面上没有显示任何内容。我对 JavaScript 真的很陌生。你能解释什么是错的吗?

var t = date("H");

if (t < "10") {
    console.log("Have a good morning!");
    document.body.style.backgroundColor = "yellow";
} elseif (t < "20") {
    console.log("Have a good day!");
    document.body.style.backgroundColor = "red";
} else {
    console.log("Have a good night!");
    document.body.style.backgroundColor = "blue";
}

【问题讨论】:

标签: javascript html css


【解决方案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";
}

查看更多关于 javaScript https://www.w3schools.com/jsref/jsref_gethours.asp 中的 Date() 函数的信息

【讨论】:

  • 谢谢,我似乎忽略了一个笨拙的错误 :) 虽然说实话我不是学生,只是一个自学成才的人。
【解决方案2】:

这是一个简单的模型。

根据当地时间,它会改变背景颜色和文字。

我也做到了,所以它每分钟都会重新检查一次。因此,如果您保持页面打开,它会随着时间的变化而改变颜色。

多花点力气,你甚至可以在白天使它在颜色之间进行补间。

我还删除了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;
}
&lt;div class="hello"&gt;&lt;/div&gt;

【讨论】:

    【解决方案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>

    【讨论】:

      【解决方案4】:

      这是一个使用 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

      【讨论】:

      • 谁提到了 jQuery?为什么要为这样的简单任务使用一个庞大的库?
      • 此外,这家伙正在为基本语法苦苦挣扎。暂时保持简单。
      【解决方案5】:
      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
      }
      

      【讨论】:

      • 请考虑为您的回答添加一些解释。单独的代码看起来不太好
      • 你能告诉我代码中的错误是什么,只是简单的sudo代码来改变背景图像
      • 我的评论不是关于代码,而是关于你的帖子。这是一个问题的答案。如果您提供一些关于 topicaster 代码中的错误的文本解释,然后提供您的解决方案,它看起来会好得多。至于代码,乍一看似乎还可以。但是,我会使用 switch 而不是 ifs 的级联
      猜你喜欢
      • 2015-09-14
      • 2014-03-22
      • 2015-06-23
      • 2018-02-21
      • 2015-12-02
      • 1970-01-01
      • 2021-01-01
      • 2021-05-13
      相关资源
      最近更新 更多