最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript html5 canvas繪制時(shí)鐘效果

 更新時(shí)間:2021年10月12日 11:05:46   作者:丿伊楓  
這篇文章主要介紹了JavaScript html5繪制時(shí)鐘效果的相關(guān)資料,使用HTML5的canvas標(biāo)簽和Javascript腳本,模擬顯示了一個(gè)時(shí)鐘,感興趣的小伙伴們可以參考一下

本文實(shí)例講述了JavaScript+html5 canvas繪制時(shí)鐘效果。分享給大家供大家參考,具體如下:

HTML部分:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
 <title>canvas繪圖</title>
</head>
<body onload="init()">
<canvas id="canvas" width="200px" height="200px"></canvas>
</body>
</html>

JavaScript部分:

function init(){
 var canvas = document.getElementById("canvas"),
  context = canvas.getContext("2d");

 setInterval(function(){draw(canvas, context)},1000);
}
function draw(canvas, context){
 var x = canvas.width,
  y = canvas.height,
  r = Math.min(x/2, y/2);

 context.clearRect(0, 0, x, y); //清除繪畫歷史
 //繪畫鐘框
 context.fillStyle = "#f1f1f1";
 drawCircle(context, x, y, r);
 //繪畫文字
 var tx = x/2,ty = y/2,tr = 0.8*r;
 context.font = "bold 12px 微軟雅黑";
 context.fillStyle = "#000";
 drawText(context, "1", tx + 0.5*tr,ty - 0.866*tr);
 drawText(context, "2", tx + 0.866*tr, ty - 0.5*tr);
 drawText(context, "3", tx + tr, ty);
 drawText(context, "4", tx + 0.866*tr, ty + 0.5*tr);
 drawText(context, "5", tx + 0.5*tr, ty + 0.866*tr);
 drawText(context, "6", tx, ty + tr);
 drawText(context, "7", tx - 0.5*tr, ty + 0.866*tr);
 drawText(context, "8", tx - 0.866*tr, ty + 0.5*tr);
 drawText(context, "9", tx - tr, ty);
 drawText(context, "10", tx - 0.866*tr, ty - 0.5*tr);
 drawText(context, "11", tx - 0.5*tr, ty - 0.866*tr);
 drawText(context, "12", tx, ty - tr);
 //獲取當(dāng)前時(shí)間
 var date = new Date(),
  h = date.getHours(),
  m = date.getMinutes(),
  s = date.getSeconds(),
  angleH = (360/12)*Math.PI/180,
  angleM = (360/60)*Math.PI/180
 context.strokeSyle = "#000";
  //繪制時(shí)刻度
  drawScale(context, x, y, r, angleH, -0.88*r, -0.96*r, 3);
  //繪制分刻度
  drawScale(context, x, y, r, angleM, -0.93*r, -0.96*r, 1);
 //繪畫時(shí)分秒針
 drawCircle(context, x, y, 3);
 drawNeedle(context, x, y, r, h*angleH + m*angleM/12, -0.5*r);
 drawNeedle(context, x, y, r, m*angleM + s*angleM/60, -0.6*r);
 drawNeedle(context, x, y, r, s*angleM, -0.75*r);

}
//繪畫圓
function drawCircle(context, x, y, r){
 context.save();
 context.beginPath();
 context.arc(x/2, y/2, r, 0, Math.PI*2, 0);
 context.fill();
 context.closePath();
 context.restore();
}
//繪畫文字方法
function drawText(context, text, x, y){
 context.save();
 x -= (context.measureText(text).width/2);
 y += 4;
 context.translate(x, y);
 context.fillText(text, 0, 0);
 context.restore();
}
//繪制刻度方法
function drawScale(context, x, y, r, rotate, start, end, lineWidth){
 context.save();
 context.beginPath();
 context.translate(x/2,y/2);
 context.lineWidth = lineWidth;
 for (var i = 0; i < 60; i++) { 
  context.rotate(rotate);
  context.moveTo(0, start); 
  context.lineTo(0, end);
 }
 context.closePath();
 context.stroke();
 context.restore();
}
//繪畫時(shí)分秒針方法
function drawNeedle(context, x, y, r, rotate, line){
 context.save();
 context.translate(x/2,y/2);
 context.beginPath();
 context.rotate(rotate);
 context.moveTo(0, 0.1*r);
 context.lineTo(0, line);
 context.closePath();
 context.stroke();
 context.restore();
}

希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • JS簡單實(shí)現(xiàn)滑動加載數(shù)據(jù)的方法示例

    JS簡單實(shí)現(xiàn)滑動加載數(shù)據(jù)的方法示例

    這篇文章主要介紹了JS簡單實(shí)現(xiàn)滑動加載數(shù)據(jù)的方法,涉及javascript事件響應(yīng)及頁面元素屬性動態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2017-10-10
  • JS面向?qū)ο笾畣芜x框?qū)崿F(xiàn)

    JS面向?qū)ο笾畣芜x框?qū)崿F(xiàn)

    這篇文章主要為大家詳細(xì)介紹了JS面向?qū)ο笾畣芜x框?qū)崿F(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • p5.js實(shí)現(xiàn)聲音控制警察抓小偷游戲示例解析

    p5.js實(shí)現(xiàn)聲音控制警察抓小偷游戲示例解析

    這篇文章主要為大家介紹了p5.js實(shí)現(xiàn)聲音控制警察抓小偷游戲示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Bootstrap選項(xiàng)卡學(xué)習(xí)筆記分享

    Bootstrap選項(xiàng)卡學(xué)習(xí)筆記分享

    這篇文章主要為大家詳細(xì)介紹了Bootstrap選項(xiàng)卡學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JavaScript中的null和undefined區(qū)別介紹

    JavaScript中的null和undefined區(qū)別介紹

    這篇文章主要介紹了JavaScript中的null和undefined區(qū)別介紹,JavaScript中存在2個(gè)代表信息不存在的特殊值:null和undefined,本文主要講解它們的區(qū)別,需要的朋友可以參考下
    2015-01-01
  • javascript實(shí)現(xiàn)頁面刷新時(shí)自動清空表單并選中的方法

    javascript實(shí)現(xiàn)頁面刷新時(shí)自動清空表單并選中的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)頁面刷新時(shí)自動清空表單并選中的方法,涉及javascript中reset與focus方法的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • JS的replace方法介紹

    JS的replace方法介紹

    replace() 方法的參數(shù) replacement 可以是函數(shù)而不是字符串。在這種情況下,每個(gè)匹配都調(diào)用該函數(shù),它返回的字符串將作為替換文本使用
    2012-10-10
  • JavaScript性能優(yōu)化之小知識總結(jié)

    JavaScript性能優(yōu)化之小知識總結(jié)

    JavaScript的性能問題不容小覷,這就需要我們開發(fā)人員在編寫JavaScript程序時(shí)多注意一些細(xì)節(jié),本文給大家介紹javascript性能優(yōu)化之小知識總結(jié),需要的朋友可以參考下
    2015-11-11
  • js實(shí)現(xiàn)文字選中分享功能

    js實(shí)現(xiàn)文字選中分享功能

    本文主要分享了js實(shí)現(xiàn)文字選中分享功能的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • es6學(xué)習(xí)之解構(gòu)時(shí)應(yīng)該注意的點(diǎn)

    es6學(xué)習(xí)之解構(gòu)時(shí)應(yīng)該注意的點(diǎn)

    解構(gòu)賦值允許你使用類似數(shù)組或?qū)ο笞置媪康恼Z法將數(shù)組和對象的屬性賦給各種變量。這種賦值語法極度簡潔,同時(shí)還比傳統(tǒng)的屬性訪問方法更為清晰,下面這篇文章主要給大家介紹了關(guān)于在es6解構(gòu)時(shí)應(yīng)該注意的點(diǎn),需要的朋友可以參考下。
    2017-08-08

最新評論

贺州市| 天峻县| 射洪县| 岱山县| 新平| 汕头市| 乌兰县| 隆安县| 府谷县| 诏安县| 洛南县| 大渡口区| 阳原县| 南陵县| 台州市| 尼玛县| 京山县| 兴安盟| 富锦市| 姚安县| 高青县| 沙雅县| 北宁市| 淮南市| 石台县| 资溪县| 威远县| 扶沟县| 都江堰市| 方正县| 郓城县| 南宁市| 蓝山县| 祥云县| 中江县| 同心县| 五华县| 林周县| 定南县| 江北区| 外汇|