各位大虾好
小弟在做 一个在线考试系统
需要一个倒计时
有点小要求:
1.一般时间是2个小时 所以倒计时要(时分秒)
2.在屏幕右边 随滚动条滚动
3.2个小时结束后 自动执行 我的ASP.NET页面上的一个交卷按钮
4.倒计时 放再 DIV上就可以~
当然 不用您现场写 如果手里有类似程序的朋友 不要吝啬 送给小弟 
非常感谢!只要成品

解决方案 »

  1.   

        var duration=2900;//ms
        var endTime = new Date().getTime() + duration + 100;
        function interval()
        {
            var n=(endTime-new Date().getTime())/1000;
            if(n<0) return;
            document.getElementById("timeout").innerHTML = n.toFixed(3);
            setTimeout(interval, 10);
        }
      

  2.   

    微软asp.net ajax toolkit的demo:http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AlwaysVisibleControl/AlwaysVisibleControl.aspx这是开源项目,可以下载从底层到这个demo应用程序所有源代码,可以直接拿demo的源代码来用。
      

  3.   

    /* *
    * 给定一个剩余时间(s)动态显示一个剩余时间.
    * 当大于一天时。只显示还剩几天。小于一天时显示剩余多少小时,多少分钟,多少秒。秒数每秒减1 *
    */
    //使用方法
    //载入js
    // auctionDate = 100;          //倒计时100秒
    // showTime    = "leftTime";   //显示倒计时的html元素id   <span id='leftTime'></span>
    // 调用方法 onload_leftTime();// 初始化变量
    var auctionDate = 0;
    var _GMTEndTime = 0;
    var showTime = "leftTime";
    var _day = '天';
    var _hour = '时';
    var _minute = '分';
    var _second = '秒';
    var _end = 'end';var cur_date = new Date();
    var startTime = cur_date.getTime();
    var Temp;
    var timerID = null;
    var timerRunning = false;function showtime()
    {
    now = new Date();
    var ts = parseInt((startTime - now.getTime()) / 1000) + auctionDate;
    var dateLeft = 0;
    var hourLeft = 0;
    var minuteLeft = 0;
    var secondLeft = 0;
    var hourZero = '';
    var minuteZero = '';
    var secondZero = '';
    if (ts < 0)
    {
        ts = 0;
        CurHour = 0;
        CurMinute = 0;
        CurSecond = 0;
    }
    else
    {
        dateLeft = parseInt(ts / 86400);
        ts = ts - dateLeft * 86400;
        hourLeft = parseInt(ts / 3600);
        ts = ts - hourLeft * 3600;
        minuteLeft = parseInt(ts / 60);
        secondLeft = ts - minuteLeft * 60;
    }if (hourLeft < 10)
    {
        hourZero = '0';
    }
    if (minuteLeft < 10)
    {
        minuteZero = '0';
    }
    if (secondLeft < 10)
    {
        secondZero = '0';
    }if (dateLeft > 0)
    {
        Temp = dateLeft + _day + hourZero + hourLeft + _hour + minuteZero + minuteLeft + _minute + secondZero + secondLeft + _second;
    }
    else
    {
        if (hourLeft > 0)
        {
          Temp = hourLeft + _hour + minuteZero + minuteLeft + _minute + secondZero + secondLeft + _second;
        }
        else
        {
          if (minuteLeft > 0)
          {
            Temp = minuteLeft + _minute + secondZero + secondLeft + _second;
          }
          else
          {
            if (secondLeft > 0)
            {
              Temp = secondLeft + _second;
            }
            else
            {
              Temp = '';
            }
          }
        }
    }if (auctionDate <= 0 || Temp == '')
    {
        Temp = "<strong>" + _end + "</strong>";
        stopclock();
    }if (document.getElementById(showTime))
    {
        document.getElementById(showTime).innerHTML = Temp;
    }timerID = setTimeout("showtime()", 1000);
    timerRunning = true;
    }var timerID = null;
    var timerRunning = false;
    function stopclock()
    {
    if (timerRunning)
    {
        clearTimeout(timerID);
    }
    timerRunning = false;
    }function macauclock()
    {
    stopclock();
    showtime();
    }function onload_leftTime()
    {
    /* 第一次运行时初始化语言项目 */
    try
    {
        _GMTEndTime = gmt_end_time;
        // 剩余时间
        _day = day;
        _hour = hour;
        _minute = minute;
        _second = second;
        _end = end;
    }
    catch (e)
    {
    }if (_GMTEndTime > 0)
    {
        var tmp_val = parseInt(_GMTEndTime) - parseInt(cur_date.getTime() / 1000 + cur_date.getTimezoneOffset() * 60);
        if (tmp_val > 0)
        {
          auctionDate = tmp_val;
        }
    }macauclock();
    try
    {
        initprovcity();
    }
    catch (e)
    {
    }
    }
      

  4.   

    用var total=2*3600;//总共多少秒
    function showTime()

     total--;
     var hour=total/3600;
    var sec=(total%3600)/60;
    var min=(total%3600)%60;
     document.getElementById("divId").innerHTML="还有"+hour+"小时"+sec+"分"+min+"秒"; if(total>0)
     {
     setTimeout("showTime()",1000);//每一秒钟执行一次检查
    }
    else
    {
      //交卷
    }
    }
      

  5.   

    谢谢各位!
    我已经写出来了 !
    我还想问个问题 就是 
    我的编辑环境是 VS2005
    我在JS里 当时间到的时候  我想执行 以个 后台的 BTN.CLICK()这个函数(就是强制交卷)
    请问下 怎么写?最好有代码 我AJAX没用过 但是如果有代码 我就照猫画虎了 小弟也去其他地方找找
    一会回来 再一次感谢!