页面上一个计时器,不停的计时,如果鼠标过了十分钟不懂就停止计时,如果窗口最小化停止计时,鼠标不在当前窗口停止计时

解决方案 »

  1.   

    现有的js代码感觉很不对var intervalId = 0; //计时器
     var xy = "";
    $(document).ready(function () {
        $(document).mousemove(function (e) {
       xy = e.screenX + ":" + e.screenY;
     });
         $(document).mouseover(function(){
           // xy = e.screenX + ":" + e.screenY;
            intervalId=window.setInterval("TimeGo()", "1000");
         });
    //  setInterval("getCommentList()", "10000");
    });
    var ss=0, mm=0, hh=0; //申明秒、分、时变量并赋初始值
    var studyTime=0;
    var locations = "";
    var Pre_Time = 2000;
    var time = 0;
    var _time = Pre_Time;
     function TimeGo() {
     if (locations == xy) {
                time++;
                _time--;
                if (time > Pre_Time) {
                   // alert("离开时间:" + time);
       clearInterval(intervalId);
                }
                else {
                      TimeAdd();               
               }
         }
       else{
           if (time > Pre_Time) {
           alert("离开时间:" + time);
        }
             
           time = 0;
           locations = xy;
            _time = Pre_Time;
            TimeAdd();
         
       }}
    function TimeAdd()
    {
          ss++; //秒值以1为单位递增   
            if(ss>=60) { //当秒数大于等于60     
              mm+=1; //分钟加1      
              ss=0; //秒数退回0   
            }   
           if(mm>=60) { //当分钟大于等于60      
              hh+=1; //小时数加1      
              mm=0; //分钟数退回0   
            }
            ss_str = (ss < 10 ? "0" + ss : ss); //格式化秒数
            mm_str = (mm < 10 ? "0" + mm : mm); //格式化分钟数
            tMsg = "在线学习: " + hh + "小时" + mm_str + "分" + ss_str + "秒"; //输出的字串
            document.getElementById("stime").innerHTML = tMsg; //在文档中id号为stime的容器中输出结果
          //  setTimeout( "TimeGo()",1000); //每一秒钟执行一次函数自身
    }