根据季节(当前日历月)更改 <body>(在 CSS 中)的背景图像
Changing a background image of <body> (in CSS) depending on the season (Current Calendar Month)
我想根据日期更改我的 HTML 背景,但我写的内容无法正常工作。我找不到任何适用的例子,我正在努力完成它。
我只想在新一季的开始通过更改我的 CSS 文件中使用的图像来更改我的 HTML 页面的背景。
JavaScript:
var d = new Date();
var Day = d.getDate();
var Month = d.getMonth();
if (Month == <3 && Month == 5) {
document.background-image: url("springTree.jpg");
} else if (Month == < 6 && Month == > 8) {
document.background-image: url("summerTree.jpg");
} else if (Month == < 9 && Month == > 11) {
document.background-image: url("autumnTree.jpg");
} else (Month == 12 && Month == > 2) {
document.background-image: url("winterTree.jpg");
CSS:
div.body {
background-image: url("summertree.jpg");
width: 640px;
height: 1136px;
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
background-size: cover;
}
我不确定这是否可以通过 JQuery 完成,但我愿意尝试任何东西。
如您所见,我显然不知道自己在做什么,我需要一些帮助,谢谢。
首先你应该看看如何在JS中进行比较。这个网站有一个很好的运营商列表和他们的工作:
JavaScript Comparison and Logical Operators
if(Month == < 3)
应该是 if(Month <= 3)
。
并大声朗读您的条件:
if (Month <= 3 && Month == 5)
if (Month <= 6 && Month >= 8)
月份是否可以小于或等于 3 并且 等于 5?月份是否可以小于或等于 6 并且 大于或等于 8? (不,可能不在这个宇宙中。)
至于交换图像,你的 html 看起来如何?你有一个 div 和一个叫 body
的 class 吗?或者您正在寻找 body 标签?如果您正在寻找 body 标签,您可以像这样更改背景图片。
document.body.style.backgroundImage = "url('springTree.png')";
试试下面的代码。
var d = new Date();
var Day = d.getDate();
// Below function returs 0 to 11. So we have added +1
var Month = d.getMonth() + 1;
// January, February, December
if (Month == 12 || Month <= 2) {
document.body.style.backgroundImage = url("winterTree.jpg");
}
// March, April, May
else if (Month >= 3 && Month <= 5) {
document.body.style.backgroundImage = url("springTree.jpg");
}
// June, July, August
else if (Month >= 6 && Month <= 8) {
document.body.style.backgroundImage = url("summerTree.jpg");
}
// September, October, November
else if (Month >= 9 && Month <= 11) {
document.body.style.backgroundImage = url("autumnTree.jpg");
}
我建议您使用 class 注入 <html>
标签。 Javascript 代码将注入任何你想要的 class (取决于位置(冬季与夏季)或当地时间(白天与夜晚))。您的 css 将具有背景(或相应的任何其他差异。
CSS:
.spring {background-image: url("springTree.jpg");}
.summer {background-image: url("summerTree.jpg");}
...
你还可以有其他的区别:
.spring li a {color: green}
.winter li a {color: white}
您可以像这样从 javascript 设置 class:
var html = document.getElementsByTagName('html')[0];
html.setAttribute('class', 'spring');
或者如果你想要多个 classes 注入(添加)你需要的那个:
root.classList.add('evening');
符合你的条件:
var d = new Date();
var month = d.getMonth() + 1;
var html = document.getElementsByTagName('html')[0];
if (month >= 3 && month <= 5) {
root.classList.add('spring');
} else if (month >= 6 && month <= 8) {
root.classList.add('summer');
} else if (month >= 9 && month <= 11) {
root.classList.add('autumn');
} else(month == 12 || month <= 2) {
root.classList.add('winter');
}
我很惊讶你的写作方式JavaScript。如果您可以查看 JavaScript | MDN - Mozilla Developer Network 并检查如何定位 类 和覆盖样式,那就太好了。以下是您的解决方案。
var d = new Date();
var Day = d.getDate();
var Month = d.getMonth();
if (Month <= 3 || Month === 5) {
document.getElementsByClassName('body')[0].style.background = "url('https://image.freepik.com/free-photo/my-cat-mimi_2568679.jpg')";
console.log('1');
} else if (Month <= 6 || Month >= 8) {
document.getElementsByClassName('body')[0].style.background = "url('https: //image.freepik.com/free-photo/clouds-above-the-volcano_426-19322758.jpg')";
console.log('2');
} else if (Month <= 9 || Month >= 11) {
document.getElementsByClassName('body')[0].style.background = "url('https://image.freepik.com/free-photo/my-cat-mimi_2568679.jpg')";
console.log('3');
} else {
document.getElementsByClassName('body')[0].style.background = "url('https: //image.freepik.com/free-photo/clouds-above-the-volcano_426-19322758.jpg')";
console.log('4');
}
而不是使用 && 你应该检查 ||如果你想在第一个月和第五个月之间改变形象。你绝对应该看看:
JavaScript Comparison and Logical Operators!
所以你不应该写if(Month == < 3)
应该是if(Month <= 3)
.
要在 HTML Dom 中更改或定位 类,请查看此处
Ps:在 Fiddle 工作 Change Pic depending using Dates
快乐学习。干杯:)
var d = new Date();
var Day = d.getDate();
var Month = d.getMonth();
if (Month == <3 && Month == 5) {
document.background-image: url("springTree.jpg");
} else if (Month == < 6 && Month == > 8) {
document.background-image: url("summerTree.jpg");
} else if (Month == < 9 && Month == > 11) {
document.background-image: url("autumnTree.jpg");
} else (Month == 12 && Month == > 2) {
document.background-image: url("winterTree.jpg");
请检查您的所有条件。
示例:Month==12 and Month<=2 :( month in year can't is 12 and <2
你应该改变 (Month == 12 || Month == > 2)
我想根据日期更改我的 HTML 背景,但我写的内容无法正常工作。我找不到任何适用的例子,我正在努力完成它。
我只想在新一季的开始通过更改我的 CSS 文件中使用的图像来更改我的 HTML 页面的背景。
JavaScript:
var d = new Date();
var Day = d.getDate();
var Month = d.getMonth();
if (Month == <3 && Month == 5) {
document.background-image: url("springTree.jpg");
} else if (Month == < 6 && Month == > 8) {
document.background-image: url("summerTree.jpg");
} else if (Month == < 9 && Month == > 11) {
document.background-image: url("autumnTree.jpg");
} else (Month == 12 && Month == > 2) {
document.background-image: url("winterTree.jpg");
CSS:
div.body {
background-image: url("summertree.jpg");
width: 640px;
height: 1136px;
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
background-size: cover;
}
我不确定这是否可以通过 JQuery 完成,但我愿意尝试任何东西。
如您所见,我显然不知道自己在做什么,我需要一些帮助,谢谢。
首先你应该看看如何在JS中进行比较。这个网站有一个很好的运营商列表和他们的工作:
JavaScript Comparison and Logical Operators
if(Month == < 3)
应该是 if(Month <= 3)
。
并大声朗读您的条件:
if (Month <= 3 && Month == 5)
if (Month <= 6 && Month >= 8)
月份是否可以小于或等于 3 并且 等于 5?月份是否可以小于或等于 6 并且 大于或等于 8? (不,可能不在这个宇宙中。)
至于交换图像,你的 html 看起来如何?你有一个 div 和一个叫 body
的 class 吗?或者您正在寻找 body 标签?如果您正在寻找 body 标签,您可以像这样更改背景图片。
document.body.style.backgroundImage = "url('springTree.png')";
试试下面的代码。
var d = new Date();
var Day = d.getDate();
// Below function returs 0 to 11. So we have added +1
var Month = d.getMonth() + 1;
// January, February, December
if (Month == 12 || Month <= 2) {
document.body.style.backgroundImage = url("winterTree.jpg");
}
// March, April, May
else if (Month >= 3 && Month <= 5) {
document.body.style.backgroundImage = url("springTree.jpg");
}
// June, July, August
else if (Month >= 6 && Month <= 8) {
document.body.style.backgroundImage = url("summerTree.jpg");
}
// September, October, November
else if (Month >= 9 && Month <= 11) {
document.body.style.backgroundImage = url("autumnTree.jpg");
}
我建议您使用 class 注入 <html>
标签。 Javascript 代码将注入任何你想要的 class (取决于位置(冬季与夏季)或当地时间(白天与夜晚))。您的 css 将具有背景(或相应的任何其他差异。
CSS:
.spring {background-image: url("springTree.jpg");}
.summer {background-image: url("summerTree.jpg");}
...
你还可以有其他的区别:
.spring li a {color: green}
.winter li a {color: white}
您可以像这样从 javascript 设置 class:
var html = document.getElementsByTagName('html')[0];
html.setAttribute('class', 'spring');
或者如果你想要多个 classes 注入(添加)你需要的那个:
root.classList.add('evening');
符合你的条件:
var d = new Date();
var month = d.getMonth() + 1;
var html = document.getElementsByTagName('html')[0];
if (month >= 3 && month <= 5) {
root.classList.add('spring');
} else if (month >= 6 && month <= 8) {
root.classList.add('summer');
} else if (month >= 9 && month <= 11) {
root.classList.add('autumn');
} else(month == 12 || month <= 2) {
root.classList.add('winter');
}
我很惊讶你的写作方式JavaScript。如果您可以查看 JavaScript | MDN - Mozilla Developer Network 并检查如何定位 类 和覆盖样式,那就太好了。以下是您的解决方案。
var d = new Date();
var Day = d.getDate();
var Month = d.getMonth();
if (Month <= 3 || Month === 5) {
document.getElementsByClassName('body')[0].style.background = "url('https://image.freepik.com/free-photo/my-cat-mimi_2568679.jpg')";
console.log('1');
} else if (Month <= 6 || Month >= 8) {
document.getElementsByClassName('body')[0].style.background = "url('https: //image.freepik.com/free-photo/clouds-above-the-volcano_426-19322758.jpg')";
console.log('2');
} else if (Month <= 9 || Month >= 11) {
document.getElementsByClassName('body')[0].style.background = "url('https://image.freepik.com/free-photo/my-cat-mimi_2568679.jpg')";
console.log('3');
} else {
document.getElementsByClassName('body')[0].style.background = "url('https: //image.freepik.com/free-photo/clouds-above-the-volcano_426-19322758.jpg')";
console.log('4');
}
而不是使用 && 你应该检查 ||如果你想在第一个月和第五个月之间改变形象。你绝对应该看看:
JavaScript Comparison and Logical Operators!
所以你不应该写if(Month == < 3)
应该是if(Month <= 3)
.
要在 HTML Dom 中更改或定位 类,请查看此处
Ps:在 Fiddle 工作 Change Pic depending using Dates
快乐学习。干杯:)
var d = new Date();
var Day = d.getDate();
var Month = d.getMonth();
if (Month == <3 && Month == 5) {
document.background-image: url("springTree.jpg");
} else if (Month == < 6 && Month == > 8) {
document.background-image: url("summerTree.jpg");
} else if (Month == < 9 && Month == > 11) {
document.background-image: url("autumnTree.jpg");
} else (Month == 12 && Month == > 2) {
document.background-image: url("winterTree.jpg");
请检查您的所有条件。 示例:Month==12 and Month<=2 :( month in year can't is 12 and <2 你应该改变 (Month == 12 || Month == > 2)