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

JavaScript html5 canvas繪制時鐘效果

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

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

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);
 //獲取當前時間
 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";
  //繪制時刻度
  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);
 //繪畫時分秒針
 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();
}
//繪畫時分秒針方法
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程序設計有所幫助。

相關文章

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

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

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

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

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

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

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

    Bootstrap選項卡學習筆記分享

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

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

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

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

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

    JS的replace方法介紹

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

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

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

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

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

    es6學習之解構(gòu)時應該注意的點

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

最新評論

精河县| 泾源县| 灵武市| 桑日县| 澄城县| 米林县| 邯郸县| 闻喜县| 汉寿县| 清原| 宝清县| 陵川县| 龙泉市| 五大连池市| 澎湖县| 扶绥县| 屯昌县| 晋中市| 田林县| 新余市| 澜沧| 苏尼特左旗| 兰西县| 新营市| 郯城县| 广南县| 桐庐县| 康平县| 明溪县| 深圳市| 烟台市| 南充市| 离岛区| 吉隆县| 阿合奇县| 青冈县| 池州市| 西安市| 桐城市| 九寨沟县| 尉氏县|