我做的在线考试系统,想实现一个功能,考试页面上有个漂浮DIV,在上面怎样显示倒计时,还要防刷新,可以随滚动条向下移动...要代码,不要理论

解决方案 »

  1.   

    <script language="javascript">
    function MM_findObj(n, d) { 
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    function MM_showHideLayers() { //v9.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) 
      with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
        if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
        obj.visibility=v; }
    }
    function CountDownTime(startDate,endDate)
    {
        if ( !IsDate(startDate) )
        {
            return false;
        }
        if ( !IsDate(endDate) )
        {
            return false;
        }
        if ( endDate < startDate )
        {
            return false
        }
        var diff = "距离"
        var difftime = Math.floor( (endDate.valueOf()-startDate.valueOf())/1000 );
          var hours = Math.floor(difftime%(60*60*24)/3600);
        var minutes = Math.floor((difftime%(60*60*24)-3600*hours)/60);
        var second = difftime-(60*60*24)*day-3600*hours-60*minutes;
        diff += day + "天" ;
        diff += (hours>10?"":"0") + hours + "小时";
        diff += (minutes>10?"":"0") + minutes + "分";
        diff += (second>10?"":"0") + second + "秒";
        return diff;
    }
    function IsDate(datetime)
    {
        return (datetime instanceof Date ? true : false);
    }
    function timer()
    {
        var d1 = new Date(2008,0,1,0,0,0);
        var d2 = new Date();
        document.getElementById("clock").innerText = CountDownTime(d2,d1);
    }
        setInterval("timer()",1000);
    </script><div id="img" style="position:absolute;z-index:100;" onmouseover="pause_resume()" onmouseout="start()"> 
    <span id="clock"></span>
    <iframe src="" style="position:absolute;visibility:inherit; top:0px; left:0px; width:180px; height:65px; z-index:-1;opacity:.0;filter: alpha( opacity=0 ); -moz-opacity: 0;"></iframe>
    </div><script LANGUAGE="JavaScript"> 
    var xPos = 20; 
    var yPos = 10; 
    img.style.left= xPos; 
    img.style.top = yPos; 
    var step = 1; 
    var delay = 30; 
    var width,height,Hoffset,Woffset; 
    var y = 1; 
    var x = 1; 
    var interval; 
    img.visibility = "visible"; function changePos() 

    width = document.body.clientWidth; 
    height = document.body.clientHeight; 
    Hoffset = img.offsetHeight; 
    Woffset = img.offsetWidth; 
    if (y) 

    yPos = yPos + step; 

    else 

    yPos = yPos - step; 

    if (yPos < 0) 

    y = 1; 
    yPos = 0; 

    if (yPos >= (height - Hoffset)) 

    y = 0; 
    yPos = (height - Hoffset); 

    if (x) 

    xPos = xPos + step; 

    else 

    xPos = xPos - step; 

    if (xPos < 0) 

    x = 1; 
    xPos = 0; 

    if (xPos >= (width - Woffset)) 

    x = 0; 
    xPos = (width - Woffset); 

    img.style.left = xPos + document.body.scrollLeft; 
    img.style.top = yPos + document.body.scrollTop; 
    } function start() 

    interval = setInterval('changePos()', delay); 
    } function pause_resume() 

    clearInterval(interval); 
    }
     
    start(); 
    </script>
      

  2.   

    >>> 漂浮DIV, 主要设置 style 中 position 为 absolute,>>> 倒计时,使用 setInterval 或 setTimeout 定时器即可.>>> 还要防刷新 可以试试下面
    <script language="javascript"> 
    function window.onbeforeunload()
    {
    return "*** 提示信息!";
    }
    </script>>>> 可以随滚动条向下移动, 可以取scroll属性, 如: scrollTop >>> 要代码,不要理论, sorry, 我认为授人以鱼不如授人以渔.