根据剩余时间更改颜色
Change color depending on remaining time
我想知道是否有一种简单的方法可以更改倒数计时器上的颜色(我希望计时器上的颜色在剩余不到 12 小时后变为红色)
CountDownTimer('09/09/2013 23:59', 'countdown');
CountDownTimer('09/11/2013 15:30', 'countdown2');
function CountDownTimer(dt, id)
{
var end = new Date(dt);
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
function showRemaining() {
var now = new Date();
var distance = end - now;
if (distance < 0) {
clearInterval(timer);
document.getElementById(id).innerHTML = '<span class=exp>Utgått!</span>';
return;
}
var days = Math.floor(distance / _day);
var hours = Math.floor((distance % _day) / _hour);
var minutes = Math.floor((distance % _hour) / _minute);
var seconds = Math.floor((distance % _minute) / _second);
document.getElementById(id).innerHTML = days + ' Dager ';
document.getElementById(id).innerHTML += hours + ' Timer ';
document.getElementById(id).innerHTML += minutes + ' Minutter ';
}
timer = setInterval(showRemaining, 1000);
}
这是我正在使用的代码。提前,谢谢你:)
只需添加以下行:
document.getElementById(id).style.color = days === 0 && hours < 12 ? 'red' : '';
JS小提琴演示。
如果剩余天数为零且少于 12 小时,则将包含元素的color
设置为 'red'
,如果还剩下一个或多个天或十二小时或更多小时,则将其设置为无(传递空字符串)。
虽然我建议缓存你正在使用的元素一次然后使用它,而不是每次都重新查询 DOM:
var cachedEl = document.getElementById(id);
/* all the other stuff... */
cachedEl.innerHTML = days + ' Dager ';
cachedEl.innerHTML += hours + ' Timer ';
cachedEl.innerHTML += minutes + ' Minutter ';
cachedEl.innerHTML += seconds + ' Seconds. ';
cachedEl.style.color = days === 0 && hours < 12 ? 'red' : '';
JS小提琴演示。
相关文章:
- 使用angularjs根据时间更改背景颜色
- 如何每隔一段时间更改我网站的背景颜色
- 如何在一段时间后更改文本的颜色
- 减少jQuery颜色动画的加载时间
- 完美缩放背景,仅在一定时间后出现,并事先允许背景颜色
- 在一定时间后更改字体颜色
- 根据剩余时间更改颜色
- 使用JS根据时间设置列的背景颜色
- d3中的颜色转换使用经过的时间
- 根据一天中的时间来改变颜色
- 改变背景颜色不透明度与时间间隔
- Javascript -根据一天中的时间改变渐变颜色的主体
- JS脚本需要时间来更改背景颜色
- 当时间接近零时,通过改变计时器的颜色或动画通知用户
- 谷歌ChartWrapper时间轴图表不使用风格颜色列
- 在日期时间选择器下拉小部件中更改字形图标的颜色
- 随着时间的推移,颜色会随着动态形状而褪色
- 无论如何,可以用javascript让倒计时计时器在某个时间改变颜色吗
- 如何在Javascript中使页面的背景颜色在一天中的某个时间发生变化
- 一天中某个时间的颜色变化不适用于Js