Javascript条件计时器逻辑

时间:2018-10-22 03:34:30

标签: javascript

我在使用JavaScript计时器逻辑时遇到了一些问题。

我需要在数字达到0时更改计时器的不透明度,并在除日期属性之外的所有时间都将颜色更改为红色。

我在CSS上没有问题,在计时器的javascript逻辑上有问题。我不知道如何写条件句。也许将所有逻辑包装在一个将被调用的函数中是一个好主意,或者使用s switch语句。任何帮助表示赞赏。

当前,有一个moment.js函数,每秒调用一次,然后更新一个duration对象以显示剩余时间。

持续时间对象如下:

0

let duration = { days: "0", hours: 22, minutes: 24, seconds: 54 }

到目前为止,我的条件如下:

I also noticed the days property usually return the number as a string

问题:

    如果
  1. 之前的属性未清零,则无法切换属性的不透明度。 例如,分钟或秒将在小时前多次变为0。但只有在将天数和小时数清零之前,才应切换其不透明度

  2. 仅当当天的属性归零后,才将所有不透明颜色更改为红色

enter image description here

1 个答案:

答案 0 :(得分:0)

我将使用一些if语句并使它看起来像:

 if (duration.days === 0 && duration.hours === 0 && duration.minutes 
=== 0 && duration.seconds === 0) {
// change all opacities
}
else if (duration.days === 0 && duration.hours === 0 && duration.minutes === 0)     
{
// change days, hours and minute opacities
}
else if (duration.days === 0 && duration.hours === 0) {
// change days and hours opacities
}
else if (duration.days === 0){
//change days opacities
}

那应该解决第一个问题。关于第二个问题,我想了解有关您所使用的框架(香草js,jquery,react,angular或vue)的更多信息。