課程
/前端開發(fā)
/Html5
/炫麗的倒計時效果Canvas繪圖與動畫基礎(chǔ)
沒有報錯,我自己控制臺輸出的都是可以的,問題就是時間不會自己更新,我手動刷新頁面時間是會減少的。
2019-01-25
源自:炫麗的倒計時效果Canvas繪圖與動畫基礎(chǔ) 4-1
正在回答
你一邊獲取了實時時間一邊卻把固定的時間賦值給實時時間,然后又讓實時時間和固定時間比較,if語句當(dāng)然不會觸發(fā)啦,他倆給你整成一樣一樣的怎么觸發(fā)
我在if判斷里面輸出了一下發(fā)現(xiàn)根本無法進入判斷
附上我自己的代碼
var?WINDOW_WIDTH?=?1080;var?WINDOW_HEIGHT?=?690;var?RADIUS?=?8;var?MARGIN_TOP?=?60;var?MARGIN_LEFT?=?30;const?endTime?=?new?Date(2019,?0,?27,?18,?47,?52);var?curShowTimeSeconds?=?0;window.onload?=?function()?{ var?canvas?=?document.getElementById('canvas'); canvas.setAttribute('width',?WINDOW_WIDTH); canvas.setAttribute('height',?WINDOW_HEIGHT); var?context?=?canvas.getContext('2d'); curShowTimeSeconds?=?getCurrentShowTimeSeconds(); setInterval( function()?{ render(context); update(); }, 1000 )}function?getCurrentShowTimeSeconds()?{ var?curTime?=?new?Date(); var?ret?=?endTime.getTime()?-?curTime.getTime(); ret?=?Math.round(ret?/?1000); return?ret?>=?0???ret?:?0;}function?update()?{ console.log("更新"); var?nextShowTimeSeconds?=?getCurrentShowTimeSeconds(); var?nextHours?=?parseInt(curShowTimeSeconds?/?3600); var?nextMinutes?=?parseInt(curShowTimeSeconds?-?nextHours?*?3600)?/?60; var?nextSeconds?=?curShowTimeSeconds?%?60; console.log("nextSeconds"+nextSeconds); var?curHours?=?parseInt(curShowTimeSeconds?/?3600); var?curMinutes?=?parseInt(curShowTimeSeconds?-?curHours?*?3600)?/?60; var?curSeconds?=?curShowTimeSeconds?%?60; console.log("curSeconds"+curSeconds); if(nextSeconds?!=?curSeconds)?{ console.log("nextSeconds?!=?curSeconds"); curShowTimeSeconds?=?nextShowTimeSeconds; }}function?render(cxt)?{ cxt.clearRect(0,?0,?WINDOW_WIDTH,?WINDOW_HEIGHT); 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(); } } }}
舉報
學(xué)習(xí)HTML5中最激動人心的技術(shù)Canvas,徹底釋放自己的創(chuàng)造力
1 回答setInterval更新時間問題
1 回答時間不自動更新,也沒有小球,這是哪塊錯了,求大神
2 回答做了一個計時器,但是把setInterval放在window.onload以后就不能刷新時間了。這是為什么呢?
5 回答為什么直接使用setInterval(getCurrentShowTimeSeconds(),50)不行?
1 回答為什么寫完運行時時間不更新而且沒有小球效果
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2019-01-28
你一邊獲取了實時時間一邊卻把固定的時間賦值給實時時間,然后又讓實時時間和固定時間比較,if語句當(dāng)然不會觸發(fā)啦,他倆給你整成一樣一樣的怎么觸發(fā)
2019-01-25
我在if判斷里面輸出了一下發(fā)現(xiàn)根本無法進入判斷
附上我自己的代碼