这段代码是什么? (只是好奇)

时间:2014-06-04 04:34:03

标签: javascript

这只是一个纯粹好奇的问题,我不是在寻找帮助修复任何东西,我只是想知道具体的代码是什么。

所以这里有我在倒数计时器中看到的全部功能:

countdown('countdown', 0, 30);

function countdown(element, mins, secs) {
    var time = mins * 60 + secs;
    var interval = setInterval(function () {
        var display = document.getElementById(element);
        // Setting green for initial startup
        if(time == 30) {
            document.getElementById(element).style.color = "green";
        }
        // Setting yellow for the halfway point
        if(time == 15) {
            document.getElementById(element).style.color = "goldenrod";
        }
        // Setting red for the final 5 seconds
        if(time == 5) {
            document.getElementById(element).style.color = "red";
        }
        // If the timer reaches 0...
        if(time == 0) {
            document.getElementById(element).style.color = "black";
            display.innerHTML = "Time's Up!";
            // Game ends if countdown ends, give results just like above if game was finished
            alert("Quiz complete! You got " + totalCorrect + " correct out of 10.");
            return;
        }
        var mins = Math.floor(time / 60);
        if(mins < 10) mins = "0" + mins;
        var secs = time % 60;
        if(secs < 10) secs = "0" + secs;
        var text = mins + ':' + secs;
        display.innerHTML = text;
        time--;
    }, 1000);

我只是对最后一行是什么感到好奇,我以前从来没有看到过一个支撑后给出的值。这是什么意思,它有什么作用?

4 个答案:

答案 0 :(得分:1)

  

我只是好奇最后一行是什么,我从未见过   在之前的支撑之后给出的值。

这来自setInterval方法。

其语法如下所示。

setInterval(function(){alert("Hello")}, 3000);

上述行表示每隔3秒(3000毫秒)发出警报“Hello”。

在你的情况下,它是1000,所以它将在1秒后回忆它。

答案 1 :(得分:1)

以秒为单位的时间(以这种情况每秒或千毫秒)。(/ p>)

   setTimeout(function(){
       //run this function every x milliseconds
   }, runEveryXMilliseconds);

答案 2 :(得分:1)

请注意,函数setInterval使用以下签名定义:

setInterval(callback, interval[, param1, param2, ...])

callback表示函数,interval表示您希望callback运行的频率。该代码的编写者选择创建一个匿名函数并使用此函数调用直接创建它,而不是将该函数声明为脱节,并将其传递给此函数。

查看此内容的一个好方法是折叠第一个参数的内容:

setInterval(function() { ... }, 1000);

这样我们就可以很容易地看到这是对setInterval的调用。

有关setInterval的更多信息,请here

答案 3 :(得分:0)

此代码用于将倒数计时器推送到DOM元素。在此FIDDLE处获得战利品。

当时间少于15秒时,它会通过将颜色定义为goldenrod来更新时间到期的dom。当时间低于5秒时,它会更新关于同一计时器的dom,但颜色为red

基本上魔术是由setInterval()完成的,它每秒循环并更新关于计时器的DOM