首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript条件定时器逻辑

Javascript条件定时器逻辑
EN

Stack Overflow用户
提问于 2018-10-22 03:34:30
回答 1查看 598关注 0票数 0

我的javascript计时器逻辑有一些问题。

当一个数字到达0时,我需要更改计时器的不透明度,以及当所有的时间(除了当天的属性也是0 )时,将颜色更改为红色。

我对CSS没有问题,我对计时器的javascript逻辑有问题。我不知道怎么写条件词。也许将所有逻辑封装在一个将被调用的函数中是个好主意,或者使用开关语句。任何帮助都是非常感谢的。

目前,有一个moment.js函数,它每秒钟被调用一次,然后更新一个持续时间对象以显示剩余的时间。

工期对象如下:

代码语言:javascript
复制
let duration = {
   days: "0",
   hours: 22,
   minutes: 24,
   seconds: 54
} 

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

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

代码语言:javascript
复制
switch (duration) {
  case duration.days === 0 && duration.hours === 0 && duration.minutes 
=== 0 && duration.seconds === 0:
// change all opacities
    break;
  case duration.days === 0 && duration.hours === 0 && duration.minutes === 0:
// change days, hours and minute opacities
    break;
  case duration.days === 0 && duration.hours === 0
  default:
// change days and hours opacities
}

这一问题:

  1. 如果前面的属性没有归零,则无法切换属性的不透明度。例如,分钟或秒数将在数小时前多次达到0。但是,他们的不透明度不应该被转换,直到几天和几个小时被归零
  2. 只有当一天的属性被归零时,所有不透明的颜色才会变为红色

EN

回答 1

Stack Overflow用户

发布于 2018-10-22 03:49:43

我会使用一些if语句,并使其看起来像:

代码语言:javascript
复制
 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
}

这应该能解决第一个问题。关于第二个问题,我想了解更多关于您正在使用的框架、vanilla、jquery、react、角或vue的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52922070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档