Javascript 如何根据时间自动更改CSS类?
我正在构建一个天气应用程序,其中我有白天模式和夜晚模式。时间根据用户搜索城市的时间而变化。我尝试使用这段代码在夜间模式和日间模式的不同CSS之间切换Javascript 如何根据时间自动更改CSS类?,javascript,Javascript,我正在构建一个天气应用程序,其中我有白天模式和夜晚模式。时间根据用户搜索城市的时间而变化。我尝试使用这段代码在夜间模式和日间模式的不同CSS之间切换 function getMode(response) { let today = response.data.dt; let timezone = response.data.timezone; let difference = today + timezone - 3600; let hours = timeConverter2(
function getMode(response) {
let today = response.data.dt;
let timezone = response.data.timezone;
let difference = today + timezone - 3600;
let hours = timeConverter2(difference);
let mode = document.getElementById("app");
if (hours > 17 || hours < 6) {
mode.classList.add("darkmode").remove("lightmode");
}
if (hours < 17 || hours > 6) {
mode.classList.add("lightmode").remove("darkmode");
}
}
气象观察
搜寻
里斯本
我认为问题在于:
if (hours > 17 || hours < 6) {
mode.classList.add("darkmode").remove("lightmode");
}
if (hours < 17 || hours > 6) {
mode.classList.add("lightmode").remove("darkmode");
}
if(小时数>17 | |小时数<6){
mode.classList.add(“darkmode”).remove(“lightmode”);
}
如果(小时数<17 | |小时数>6){
mode.classList.add(“lightmode”).remove(“darkmode”);
}
以3am为例,两个循环都满足条件。所以应该是这样的:
if (hours > 17 || hours < 6) {
mode.classList.add("darkmode").remove("lightmode");
}
else {
mode.classList.add("lightmode").remove("darkmode");
}
if(小时数>17 | |小时数<6){
mode.classList.add(“darkmode”).remove(“lightmode”);
}
否则{
mode.classList.add(“lightmode”).remove(“darkmode”);
}
还应检查边缘情况:
if (hours >= 6 && hours <= 17) {
mode.classList.add("lightmode").remove("darkmode");
}
else {
mode.classList.add("darkmode").remove("lightmode");
}
如果(hours>=6&&hours为了有类似问题的人的利益,我只是用以下方式更改了代码的顺序:
if (hours > 17) {
mode.classList.add("darkmode").remove("lightmode");
}
if (hours < 6) {
mode.classList.add("darkmode").remove("lightmode");
} else {
mode.classList.remove("darkmode").add("lightmode");
}
}
而不是
mode.classList.add("lightmode").remove("darkmode");
如何调用getMode()
?我假设您每次搜索不同的城市时都会调用它?搜索时,hours
是否正确更新?我使用axios调用它,我有一个搜索(city)函数,其中包含API url,我使用axios.get(url)调用它。然后(getMode)。每次搜索城市时,小时数都会更新。get\u mode
看起来它应该做你想做的事情,所以问题出在别处。你需要显示如何调用get\u mode
(换句话说,请提供一个)你能告诉我hours
变量是什么吗?谢谢你的回答,我以前就有过这样的变量,问题依然存在!@mfs你有没有用&&或只用| |选项来尝试这个选项?只用| | |…一个数字不能同时大于17和小于6,对吗?@mfs:像这样=像哪一个?hours<17 | hours>6
I这总是正确的。恐怕任何调试都需要一个最小的可重复的示例。
mode.classList.remove("darkmode").add("lightmode");
mode.classList.add("lightmode").remove("darkmode");