Javascript js中的背景图像渐变不工作
我对这个js代码有问题。控制台日志和条件正常工作,但背景未更改。(更改背景取决于时间) JS代码在这里:Javascript js中的背景图像渐变不工作,javascript,css,background,Javascript,Css,Background,我对这个js代码有问题。控制台日志和条件正常工作,但背景未更改。(更改背景取决于时间) JS代码在这里: var today = new Date(); var time = today.getHours() $(document).ready(function(){ if(time <6 || time > 21) { $('.tester').css({ 'background-image' : ' linear-gradient(#483475,#1418
var today = new Date();
var time = today.getHours()
$(document).ready(function(){
if(time <6 || time > 21)
{
$('.tester').css({
'background-image' : ' linear-gradient(#483475,#141852, #070B34,#000)',
})
console.log(1);
}
if(time >= 6 && time < 9)
{
$('.tester').css({
'background-image' : ' linear-gradient(#c6c6dc,#a8b4d6, #fabf67,#f9a05a)',
})
console.log(2);
}
if(time >= 9 && time < 19)
{
$('.tester').css({
'background-image' : ' linear-gradient(#2fcbff,#2f63ff, #fabf67,00b253)',
})
console.log(3);
}
if(time >= 19 && time < 21)
{
$('.tester').css({
'background-image' : ' linear-gradient(#c6c6dc,#a8b4d6, #fabf67,#f9a05a)',
})
console.log(4);
}
});
当我把它放在这样的东西里时,它能正常工作:
$(document).ready(function(){
$('.tester').css({
'background-image' : ' linear-gradient(#483475,#141852, #070B34,#000)',
})
console.log(1);
}
您需要计算每秒经过的时间,以决定需要显示哪些背景
const start\u seconds=new Date().getTime()/1000;
setInterval(函数(){
const new_seconds=new Date().getTime()/1000;
常数时间=新秒-开始秒;
如果(时间<6 | |时间>21){
$('.tester').css({
“背景图像”:“线性梯度(#483475,#141852,#070B34,#000)”,
})
控制台日志(1);
}
如果(时间>=6&&time<9){
$('.tester').css({
“背景图像”:“线性梯度(#c6c6dc,#a8b4d6,#fabf67,#f9a05a)”,
})
控制台日志(2);
}
如果(时间>=9&&time<19){
$('.tester').css({
“背景图像”:“线性梯度(#2fcbff,#2f63ff,#fabf67,00b253)”,
})
控制台日志(3);
}
如果(时间>=19&&time<21){
$('.tester').css({
“背景图像”:“线性梯度(#c6c6dc,#a8b4d6,#fabf67,#f9a05a)”,
})
控制台日志(4);
}
}, 1000);代码>
.tester{
高度:100vh;
宽度:100%;
颜色:白色;
}
TEST
查看非jQuery示例可能会有所帮助(为了比较):
您的代码中有语法错误。第三个如果
块在最后一种颜色中缺少一个#
,所有这些渐变看起来都是静态的,这不像是动态计算任何值-因此您不应该在这里直接通过JavaScript设置样式,而是将其保留在样式表中。让JS代码根据一天中的时间向.tester
元素添加一个额外的类,然后在样式表中编写规则以应用相应的背景渐变.tester.morning{…}.tester.midday{…}…
但是。。。为什么控制台中的日志提示符工作正常?如果我添加断点并对其进行调试,则不会跳过这些行,但不会发生任何事情。Howewer添加额外的类可能是更好的解决方案。
.tester
{
height: 100vh;
width: 100%;
color: white;
}
$(document).ready(function(){
$('.tester').css({
'background-image' : ' linear-gradient(#483475,#141852, #070B34,#000)',
})
console.log(1);
}
let aryOfTesterClassElements = [... document.getElementsByClassName("tester")];
let firstTester = aryOfTesterClassElements[0];
firstTester.style.backgroundImage = `linear-gradient(#2fcbff,#2f63ff, #fabf67,00b253)`;