Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js中的背景图像渐变不工作_Javascript_Css_Background - Fatal编程技术网

Javascript 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

我对这个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,#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)`;