这个功能有什么作用?

时间:2017-03-05 16:07:37

标签: javascript jquery css

我在网站上找到了这段代码, 我想知道这个功能是什么和做什么的。 我知道PHP,HTML,CSS和JavaScript, 但我还没有学过JQUERY和AJAX。我特别需要知道他们遵循的例程,把东西放在colors数组中,它是随机的,还是有一个模式:

$('#onehour_next').css('backgroundColor', colors[(hours == 23 ? 0 : hours+1)]);

function doStuff()
        {       
            current = new Date();
            hours = current.getHours();
            minutes = 59 - current.getMinutes();
            seconds = 59 - current.getSeconds();

            onehour.innerHTML = prettyTime(0, minutes, seconds);

            if (colors.length === 0 || current.getSeconds() === 0)
                init();

            $('#onehour').css('backgroundColor', colors[hours]);
            $('#onehour_next').css('backgroundColor', colors[(hours == 23 ? 0 : hours+1)]);

            setTimeout(doStuff, 1000);
        }

1 个答案:

答案 0 :(得分:0)

代码为一天中的每个小时设置不同的颜色。

数组colors未在此代码中定义,但可能在列表中包含24种不同的颜色。列表中的第一种颜色将在晚上11点至晚上11:59使用,然后在午夜使用第二种颜色,依此类推,直到第24种颜色在晚上10点到10:59之间使用。

要解释代码的工作原理,您需要查看每个小段。

  • hours == 23问“当前23小时(即晚上11点)是当天的小时”
  • 0只是零号
  • hour + 1比当天的当前小时高一个。
  • question ? answer1 : answer2基本上说“如果问题属实,那就使用answer1。如果是假,请使用answer2”
  • 因此(hours == 23 ? 0 : hours+1)实质上意味着“将当前时间缩短到当天的下一个小时”,并且将是0到23之间的值
  • colors[n]表示“在列表颜色中找到第n个值”。请注意,0是第1项,1是第2项,依此类推。
  • $('#onehour_next')查找标识为onehour_next
  • 的HTML元素
  • .css根据接下来的两个值设置该元素的CSS
  • 'backgroundColor'表示正在设置该元素背景的颜色
  • 因此我们从colors[(hours == 23 ? 0 : hours+1)]得到的值将被设置为元素onehour_next的背景颜色