如何使用CSS来设置JavaScript的输出样式

时间:2014-07-17 15:43:15

标签: javascript html css

javascript是一个计时器,可以倒计时如何使用css更改样式?

(或任何其他替代方案)

我需要脚本在定时器达到0时关闭窗口,但不会发生。  出了什么问题?

有没有办法将倒计时整合为进度条?

<span id="countdown"></span>
<script type="text/javascript">
    // set the date we're counting down to
    var target_date = new Date().getTime();
    var delay = 10;
    // variables for time units
    var days, hours, minutes, seconds;

    // get tag element
    var countdown = document.getElementById("countdown");

    // update the tag with id "countdown" every 1 second
    setInterval(function () {

        // find the amount of "seconds" between now and target
        var current_date = new Date().getTime();
        var seconds_left = (current_date - target_date) / 1000;
        var a = (delay - seconds_left);
        // do some time calculations


        minutes = parseInt(a / 60);
        seconds = parseInt(a % 60);

        // format countdown string + set tag value
        countdown.innerHTML = minutes + "m: " + seconds + "s";

        if (seconds_left > delay) {
            setTimeout(action(), 10);
        }

    }, 1000);
    var action = function () {
        close();
    }
</script>

2 个答案:

答案 0 :(得分:0)

尝试将其放在你的javascript中,setInterval会 每秒钟调用一次减量计数器。 在减量计数器中,我们检查值是否为 仍然是积极的,如果不是我们关闭当前窗口。

 var counter = 10; //time in seconds

 var decrementCounter = function() {
   if (counter > 0)
      counter--;
   else
      window.close();
  }

  setInterval(decrementCounter, 1000);

如果要绑定到进度条,可以使用&lt;进展&gt; Html元素:

 <progress id="myProgessBar" value="0" max="10"></progress>

您可以在decrementFunction范围之外声明progressBar变量,这样您就不必在每次调用时在DOM中搜索它。 然后在你的javascript中更新进度条的value属性 每次调用减量计数器。这为您提供了以下功能:

  var decrementCounter = function() {
   if (counter > 0) {
      counter--;
      var progresBar = document.getElementBYId('myProgressBar');
      progressBar.value += 1;
   }
   else
      window.close();
  }

不完全确定语法,但这就是精神。 您可以在此处找到有关进度元素的更多信息

http://www.alsacreations.com/article/lire/1416-html5-meter-progress.html

答案 1 :(得分:0)

HTML:

<div id="countdown" style="background:gray"></div>

js code:

// set the date we're counting down to
var target_date = new Date().getTime();
 var delay=10;
// variables for time units
var days, hours, minutes, seconds;

// get tag element
var countdown = document.getElementById("countdown");

// update the tag with id "countdown" every 1 second
setInterval(function () {

    // find the amount of "seconds" between now and target
    var current_date = new Date().getTime();
    var seconds_left = (current_date - target_date) / 1000;
    var a=(delay-seconds_left);
    // do some time calculations


    minutes = parseInt(a / 60);
    seconds = parseInt(a % 60);
    var progress = a/delay*100;


    // format countdown string + set tag value
    countdown.innerHTML = '<div style="background:red; width:'+progress+'%">'+minutes + "m: " + seconds + "s" + '</div>';  

    if(seconds_left>delay)
    {setTimeout(action(),10);}

    if(a < 0)
    {
        countdown.innerHTML = 'END';  
        window.close();     
    }

}, 1000);
var action=function()
{
close();
}

演示 - &gt; http://jsfiddle.net/Junkie/DEc4F/3/