課程
/前端開(kāi)發(fā)
/Html5
/炫麗的倒計(jì)時(shí)效果Canvas繪圖與動(dòng)畫(huà)基礎(chǔ)
怎么實(shí)現(xiàn)從xx天xx時(shí)xx分xx秒開(kāi)始倒計(jì)時(shí)?謝謝,最好附上源碼
2016-08-25
源自:炫麗的倒計(jì)時(shí)效果Canvas繪圖與動(dòng)畫(huà)基礎(chǔ) 3-3
正在回答
// JavaScript Document
//window.width =1024;
//window.height =768;
//窗口的處理更加的方便
/*
var WINDOW_WIDTH =1024;
var WINDOW_HEIGHT =768;
var RADIUS =8;
var MARGIN_LEFT =30;
var MARGIN_TOP =60;
const endTime =new Date("2016-07-26 18:20:30");
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();
render( context );//繪制當(dāng)前的canvas函數(shù)的畫(huà)布
}
function getCurrentShowTimeSeconds(){
var curTime =new Date();
var ret =endTime.getTime()-curTime.getTime();
ret =Math.round(ret/1000);//換算成秒并且取整
return ret>0?ret :0;
function render( cxt ){
var hours =parseInt(curShowTimeSeconds/3600);
var minutes =parseInt((curShowTimeSeconds-hours*3600)/60);
var seconds =curShowTimeSeconds%60;
renderDigit(MARGIN_LEFT,MARGIN_TOP,parseInt(hours/10),cxt);
renderDigit(MARGIN_LEFT+15*(RADIUS+1),MARGIN_TOP,parseInt(hours%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)";
for (var i =0;i<digit[num].length;i++)
for (var j=0;j<digit[num][i].length;j++)
if(digit[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();
*/
var WINDOW_WIDTH = 1024;
var WINDOW_HEIGHT = 768;
var RADIUS = 8;
var MARGIN_TOP = 60;
var MARGIN_LEFT = 30;
const endTime = new Date(2016,7,26,22,47,52);
var curShowTimeSeconds = 0
? ? var canvas = document.getElementById('canvas');
? ? var context = canvas.getContext("2d");
? ? canvas.width = WINDOW_WIDTH;
? ? canvas.height = WINDOW_HEIGHT;
? ? curShowTimeSeconds = getCurrentShowTimeSeconds()
? ? render( context )
function getCurrentShowTimeSeconds() {
? ? var curTime = new Date();
? ? var ret = endTime.getTime() - curTime.getTime();
? ? ret = Math.round( ret/1000 )
? ? return ret >= 0 ? ret : 0;
? ? var hours = parseInt( curShowTimeSeconds / 3600);
? ? var minutes = parseInt( (curShowTimeSeconds - hours * 3600)/60 )
? ? var seconds = curShowTimeSeconds % 60
? ? renderDigit( MARGIN_LEFT , MARGIN_TOP , parseInt(hours/10) , cxt )
? ? renderDigit( MARGIN_LEFT + 15*(RADIUS+1) , MARGIN_TOP , parseInt(hours%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)";
? ? for( var i = 0 ; i < digit[num].length ; i ++ )
? ? ? ? for(var j = 0 ; j < digit[num][i].length ; j ++ )
? ? ? ? ? ? if( digit[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()
? ? ? ? ? ? }
zero沐白
舉報(bào)
學(xué)習(xí)HTML5中最激動(dòng)人心的技術(shù)Canvas,徹底釋放自己的創(chuàng)造力
3 回答把計(jì)時(shí)器改成從0開(kāi)始計(jì)時(shí),怎么改
1 回答3.3倒計(jì)時(shí)時(shí)間計(jì)算
2 回答倒計(jì)時(shí)時(shí)鐘做好了,我想添加一個(gè)暫停,播放怎么實(shí)現(xiàn)
2 回答倒計(jì)時(shí)異常
1 回答倒計(jì)時(shí)絢麗圖設(shè)計(jì)
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-08-26
// JavaScript Document
//window.width =1024;
//window.height =768;
//窗口的處理更加的方便
/*
var WINDOW_WIDTH =1024;
var WINDOW_HEIGHT =768;
var RADIUS =8;
var MARGIN_LEFT =30;
var MARGIN_TOP =60;
const endTime =new Date("2016-07-26 18:20:30");
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();
render( context );//繪制當(dāng)前的canvas函數(shù)的畫(huà)布
}
function getCurrentShowTimeSeconds(){
var curTime =new Date();
var ret =endTime.getTime()-curTime.getTime();
ret =Math.round(ret/1000);//換算成秒并且取整
return ret>0?ret :0;
}
function render( cxt ){
var hours =parseInt(curShowTimeSeconds/3600);
var minutes =parseInt((curShowTimeSeconds-hours*3600)/60);
var seconds =curShowTimeSeconds%60;
renderDigit(MARGIN_LEFT,MARGIN_TOP,parseInt(hours/10),cxt);
renderDigit(MARGIN_LEFT+15*(RADIUS+1),MARGIN_TOP,parseInt(hours%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)";
for (var i =0;i<digit[num].length;i++)
for (var j=0;j<digit[num][i].length;j++)
if(digit[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();
}
}
*/
var WINDOW_WIDTH = 1024;
var WINDOW_HEIGHT = 768;
var RADIUS = 8;
var MARGIN_TOP = 60;
var MARGIN_LEFT = 30;
const endTime = new Date(2016,7,26,22,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()
? ? render( context )
}
function getCurrentShowTimeSeconds() {
? ? var curTime = new Date();
? ? var ret = endTime.getTime() - curTime.getTime();
? ? ret = Math.round( ret/1000 )
? ? return ret >= 0 ? ret : 0;
}
function render( cxt ){
? ? var hours = parseInt( curShowTimeSeconds / 3600);
? ? var minutes = parseInt( (curShowTimeSeconds - hours * 3600)/60 )
? ? var seconds = curShowTimeSeconds % 60
? ? renderDigit( MARGIN_LEFT , MARGIN_TOP , parseInt(hours/10) , cxt )
? ? renderDigit( MARGIN_LEFT + 15*(RADIUS+1) , MARGIN_TOP , parseInt(hours%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)";
? ? for( var i = 0 ; i < digit[num].length ; i ++ )
? ? ? ? for(var j = 0 ; j < digit[num][i].length ; j ++ )
? ? ? ? ? ? if( digit[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()
? ? ? ? ? ? }
}