为了账号安全,请及时绑定邮箱和手机立即绑定

求大神指教,为什么我这个定时器不起作用呢?

var WINDOW_WIDTH=400;//画布长度
var WINDOW_HEIGHT=300;//画布高度
var RADIUS=2;//每个数字中小圆点的半径
var MARGIN_LEFT=20;//第一个数字离画布左边的距离
var MARGIN_TOP=30;//第一个数字离画布上边的距离

//截止的日期
const endTime=new Date(2015,11,5,18,47,52);
var curShowTimeSeconds=0;

window.onload=function(){
   var canvas=document.getElementById('canvas');
   //获取画布环境
   var context=canvas.getContext('2d');

   canvas.width=WINDOW_WIDTH;
   canvas.height=WINDOW_HEIGHT;

   curShowTimeSeconds=getCurrentShowTimeSeconds();

   //定时器每隔50毫秒执行一次程序
   setInterval(function(){
       render(context);
       update();
   },50);
}

//获取截止日期到现在日期的差值
function getCurrentShowTimeSeconds(){
   var curTime=new Date();
   var ret=endTime.getTime()-curTime.getTime();//毫秒
   ret=Math.round(ret/1000);//转换成秒

   return ret>=0?ret:0;//若差值大于0则返回,若小于0,则返回0
}

function update(){
  var  nextShowTimeSeconds=getCurrentShowTimeSeconds();
   var nextHours=parseInt(nextShowTimeSeconds/3600);
   var nextMinutes=parseInt((nextShowTimeSeconds-nextHours*3600)/60);
   var nextSeconds=nextShowTimeSeconds%60;

   //截止的小时
   var curHour=parseInt(curShowTimeSeconds/3600);
   //截止的分钟
   var curMinutes=parseInt((curShowTimeSeconds-hour*3600)/60);
   //截止的分钟
   var curSeconds=curShowTimeSeconds%60;

   if(nextSeconds!=curSeconds){
       curShowTimeSeconds=nextShowTimeSeconds;
   }
}

//画出此刻离截止日期的时间
function render(cxt){

   cxt.clearRect(0,0,WINDOW_WIDTH,WINDOW_HEIGHT);
   //截止的小时
   var hour=parseInt(curShowTimeSeconds/3600);
   //截止的分钟
   var minutes=parseInt((curShowTimeSeconds-hour*3600)/60);
   //截止的分钟
   var seconds=curShowTimeSeconds%60;

   renderDigit(MARGIN_LEFT,MARGIN_TOP,parseInt(hour/10),cxt);
   renderDigit(MARGIN_LEFT+15*(RADIUS+1),MARGIN_TOP,parseInt(hour%10),cxt);
   renderDigit(MARGIN_LEFT+30*(RADIUS+1),MARGIN_TOP,10,cxt);
   renderDigit(MARGIN_LEFT+39*(RADIUS+1),MARGIN_TOP,parseInt(minutes/10),cxt);
   renderDigit(MARGIN_LEFT+54*(RADIUS+1),MARGIN_TOP,parseInt(minutes%10),cxt);
   renderDigit(MARGIN_LEFT+69*(RADIUS+1),MARGIN_TOP,10,cxt);
   renderDigit(MARGIN_LEFT+78*(RADIUS+1),MARGIN_TOP,parseInt(seconds/10),cxt);
   renderDigit(MARGIN_LEFT+93*(RADIUS+1),MARGIN_TOP,parseInt(seconds%10),cxt);
}

//画出每个数字
function renderDigit(x,y,num,cxt){

   //圆点的颜色
   cxt.fillStyle="rgb(0,102,153)";
   //对lend1进行遍历,i是每个数字的行数,j是没个数字的列数
   for(var i=0;i<lend1[num].length;i++){
       for(var j=0;j<lend1[num][i].length;j++){
         if(lend1[num][i][j]==1){
             cxt.beginPath();
             cxt.arc(x+j*2*(RADIUS+1)+(RADIUS+1),y+i*2*(RADIUS+1)+(RADIUS+1),RADIUS,0,2*Math.PI);
             cxt.closePath();

             cxt.fill();
         }
       }
   }
}

正在回答

1 回答

lend1 你这个数组在哪里?

0 回复 有任何疑惑可以回复我~
#1

QAQQQQ 提问者

在另外一个js文件里面,刚刚我已经找到错误了,谢谢你啊
2015-12-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神指教,为什么我这个定时器不起作用呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信