欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js Canvas繪制圓形時鐘效果

 更新時間:2017年02月17日 17:02:51   作者:Android丶Ren  
這篇文章主要為大家詳細(xì)介紹了js Canvas繪制圓形時鐘效果的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js Canvas圓形時鐘的具體實現(xiàn)代碼,供大家參考,具體內(nèi)容如下

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Canvas Clock</title>
    <style type="text/css">

      div{
        text-align: center;
        margin-top: 250px;
      }
      #clock{

        border: 1px solid #ccc;
      }
    </style>
  </head>
  <body>
    <div>
      <canvas id="clock" height="200px" width="200px"></canvas>
    </div>

    <script type="text/javascript" src="js/clock.js"></script>
  </body>
</html>

js

var dom=document.getElementById('clock');
var cxt=dom.getContext("2d");
var width=cxt.canvas.width;
var height=cxt.canvas.height;
var r=width/2;

function drawBackground(){
  cxt.save();
  cxt.translate(r,r);
  cxt.beginPath();
  cxt.lineWidth=10;
  cxt.arc(0,0,r-5,0,2*Math.PI,false);
  cxt.stroke();
  cxt.font="18px Arial";
  cxt.textAlign='center'
  cxt.textBaseline='middle'
  var hourNums=[3,4,5,6,7,8,9,10,11,12,1,2];
  hourNums.forEach(function(number,i){

    var rad=2*Math.PI/12*i;
    var x=Math.cos(rad)*(r-30);
    var y=Math.sin(rad)*(r-30);
    cxt.fillText(number,x,y);

  });

  for(var i=0;i<60;i++){

    var rad=2*Math.PI/60*i;
    var x=Math.cos(rad)*(r-18);
    var y=Math.sin(rad)*(r-18);
    cxt.beginPath();
    if(i % 5===0){
      cxt.fillStyle="#000"
      cxt.arc(x,y,2,0,2*Math.PI,false);
    }
    else{
      cxt.fillStyle="#ccc"
      cxt.arc(x,y,2,0,2*Math.PI,false);
    }
    cxt.fill(); 
  }

}

function drawHour(hour,minute){
  cxt.save();
  cxt.beginPath();
  var rad=2*Math.PI/12*hour;
  var mrad=2*Math.PI/12/60*minute
  cxt.rotate(rad+mrad);
  cxt.lineWidth=6;
  cxt.lineCap='round'
  cxt.moveTo(0,10);
  cxt.lineTo(0,-r/2);
  cxt.stroke();
  cxt.restore();
}

function drawMinute(minute){
  cxt.save();
  cxt.beginPath();
  var rad=2*Math.PI/60*minute;
  cxt.rotate(rad);
  cxt.lineWidth=3;
  cxt.lineCap='round'
  cxt.moveTo(0,10);
  cxt.lineTo(0,-r+30);
  cxt.stroke();
  cxt.restore();
}

function drawSecond(second){
  cxt.save();
  cxt.beginPath();
  cxt.fillStyle='#c14543'
  var rad=2*Math.PI/60*second;
  cxt.rotate(rad);  
  cxt.moveTo(-2,20);
  cxt.lineTo(2,20);
  cxt.lineTo(1,-r+18);
  cxt.lineTo(-1,-r+18);
  cxt.fill();
  cxt.restore();
}

function drawDot(){

  cxt.beginPath();
  cxt.fillStyle='#fff'
  cxt.arc(0,0,3,0,2*Math.PI,false);
  cxt.fill();
}

function draw(){

  cxt.clearRect(0,0,width,height);
  var now=new Date();
  var hour=now.getHours();
  var minute=now.getMinutes();
  var second=now.getSeconds();
  drawBackground();
  drawHour(hour,minute);
  drawMinute(minute);
  drawSecond(second);
  drawDot();
  cxt.restore();
}
draw();
setInterval(draw,1000);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • ECMAScript中函數(shù)function類型

    ECMAScript中函數(shù)function類型

    這篇文章主要介紹了ECMAScript中函數(shù)function類型的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • JS實現(xiàn)星星海特效

    JS實現(xiàn)星星海特效

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)星星海特效特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • js如何將輸入的文字部分獲取拼音首字母

    js如何將輸入的文字部分獲取拼音首字母

    這篇文章主要介紹了js如何將輸入的文字部分獲取拼音首字母問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • javascript鼠標(biāo)跟隨運動3種效果(眼球效果,蘋果菜單,方向跟隨)

    javascript鼠標(biāo)跟隨運動3種效果(眼球效果,蘋果菜單,方向跟隨)

    在很多網(wǎng)站上能看到圖片跟隨鼠標(biāo)移動的JS特效,其實做法很簡單,本文就介紹了很多javascript鼠標(biāo)跟隨運動,在這里與大家分享下。
    2016-10-10
  • 光標(biāo)定位等TextRange的操作的范例代碼

    光標(biāo)定位等TextRange的操作的范例代碼

    光標(biāo)定位等TextRange的操作的范例代碼...
    2006-07-07
  • JavaScript版本迷局介紹

    JavaScript版本迷局介紹

    有人說喜歡一個人,沒必要了解她的過去,然而想讀懂一個人,卻需要了解她的過去。
    2011-01-01
  • JS簡單實現(xiàn)動畫彈出層效果

    JS簡單實現(xiàn)動畫彈出層效果

    本文給大家介紹的是是一款javascript彈出層特效,支持點擊觸發(fā)js彈出層,滑過觸發(fā)js彈出層,帶動畫效果js彈出層,可自定義函數(shù)回調(diào)js彈出層。
    2015-05-05
  • uploadify在Firefox下丟失session問題的解決方法

    uploadify在Firefox下丟失session問題的解決方法

    在用uploadify上傳插件時遇到了一個問題,在讀session時認(rèn)為沒有權(quán)限而被攔截了,后來在后臺打印登錄時產(chǎn)生session的id和上傳時讀取session的id,解決方法如下,感興趣的朋友可以了解下
    2013-08-08
  • ES6入門教程之let、const的使用方法

    ES6入門教程之let、const的使用方法

    這篇文章主要給大家介紹了關(guān)于ES6入門教程之let、const使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用ES6具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 微信小程序?qū)崿F(xiàn)彈幕墻(祝福墻)

    微信小程序?qū)崿F(xiàn)彈幕墻(祝福墻)

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)彈幕墻、祝福墻效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論