Javascript 如何使用jQuery/jQueryUi根据日出到日落的时间更改背景颜色?

Javascript 如何使用jQuery/jQueryUi根据日出到日落的时间更改背景颜色?,javascript,jquery,css,jquery-ui,Javascript,Jquery,Css,Jquery Ui,我正在尝试在我正在制作的天气应用程序中加入一个功能,在日出和日落之间,背景色在浅蓝色和淡紫色之间缓慢过渡,反之亦然。我的代码中与代码相关的部分如下,您可以在此处查看整个项目: 从概念上讲,这是您的代码。我们从早晨的颜色(#fff)开始,经过一段时间,我们混合到晚上的颜色(#000) 不过有几件事 首先,在你的代码中,你现在正在从日落中减去。你想反过来做 其次,你正在从一个黄昏(早晨)过渡到第二个黄昏(晚上)。这可能非常微妙。你需要在中间混合一整天,或者你的背景看起来就像一整天的黄昏。 var

我正在尝试在我正在制作的天气应用程序中加入一个功能,在日出和日落之间,背景色在浅蓝色和淡紫色之间缓慢过渡,反之亦然。我的代码中与代码相关的部分如下,您可以在此处查看整个项目:


从概念上讲,这是您的代码。我们从早晨的颜色(#fff)开始,经过一段时间,我们混合到晚上的颜色(#000)

不过有几件事

首先,在你的代码中,你现在正在从日落中减去。你想反过来做

其次,你正在从一个黄昏(早晨)过渡到第二个黄昏(晚上)。这可能非常微妙。你需要在中间混合一整天,或者你的背景看起来就像一整天的黄昏。

var now=(新日期()).getTime();
var fakeMidnight=现在+(30*1000);
var untilMidnight=(fakeMidnight-现在);
log(“它将在接下来的几天变成夜晚:”+(直到午夜/1000)+“秒”)
$(“body”).animate({'background-color':'000'},(fakeMidnight-now),'linear')
body{背景色:#fff;}


您的问题是…?我可以使用什么库?什么方法?我的思路对吗?你的代码似乎或多或少能正常工作。有一些机会和一些未定义的变量,但从概念上看似乎还可以。你可能需要改变的一件事是从“日出到日落”的混合,因为理论上是从黄昏到黄昏的混合。也许你应该定义一个中午的颜色并将其融入其中。谢谢@JonSG我现在正在东部时间晚上10:21查看该项目,颜色仍然是亮蓝色。至少对我来说,我在代码方面所做的似乎不起作用……不应该先声明midnight变量,然后在伪午夜使用它吗?我使用的是Unix历元,所以如果现在使用var的当前历元计数,然后加上午夜*1000,也就是午夜的历元,那不就是把92年后的秒数乘以1000吗?现在从午夜减去(或fakeMidnight,将等式颠倒到午夜),然后将该数字加到现在,并使用该数字作为更改的时间间隔?fakeMidnight是一个变量,概念上表示即将到来的午夜((新日期())。setHours(24,0,0,0))但这并不是一个非常生动的演示,所以我将它设置为30秒。在您的示例中,这实际上可能更像是“日落”,因为您将其用作最终目标时间。untilMidnight是从现在到fakeMidnight之间的ms数。这将告诉动画混合的时间。要得到它,你现在可以从Fakemiddnight中减去
var sun = "http://api.sunrise-sunset.org/json?lat=" + lat + "&lng=" + lon + "&date=today";
  $.getJSON(sun, function(sunData){
    var sunUp = sunData.results.sunrise;
    var sunDown = sunData.results.sunset;
    var sunStatus = sunData.status;
    var nowEpoch = (Date.now())(1000)

      $("body").animate({'background-color':'#56c1ff'},nowEpoch - ((sunDown)*(1000)), 'linear');`