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

JavaScript Canvas繪制圓形時鐘效果

 更新時間:2020年08月20日 14:33:47   作者:晉級的菜鳥  
這篇文章主要為大家詳細介紹了JavaScript Canvas繪制圓形時鐘效果的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Canvas時鐘效果展示的具體代碼,供大家參考,具體內(nèi)容如下

<html lang="en"> 
<head> 
 <meta charset="UTF-8"> 
 <title></title> 
 <style> 
 canvas{ 
  display: block; 
  margin: 0 auto; 
  background-color: #fdffad; 
  border: 1px solid #000; 
 } 
 </style> 
 <script type="text/javascript"> 
 
 document.addEventListener('DOMContentLoaded',function(){ 
  var oC=document.querySelector('canvas'); 
  var gd=oC.getContext('2d'); 
  var r=oC.width/2; 
 
  function drawBackground() { 
  gd.save(); 
  //漸變 
 
  var ra = gd.createLinearGradient(600, 0, 400, 0); 
  ra.addColorStop(1, '#2dd9ff'); 
  ra.addColorStop(0, '#8c48dd'); 
 
  //表盤 
  gd.translate(r, r); 
  gd.beginPath(); 
  gd.fillStyle = ra; 
  gd.lineWidth = 10; 
  gd.strokeStyle = '#211f4e'; 
  gd.arc(0, 0, r-5, 0, Math.PI *2, false); 
  gd.fill(); 
  gd.stroke(); 
  //數(shù)字 
  for (var i = 1; i < 13; i++) { 
   var rad=i * Math.PI * 2 / 12; 
   var x = Math.sin(rad)*(r-70); 
   var y= -Math.cos(rad)*(r-70); 
   gd.fillStyle = "red"; 
   gd.font = "bold 80px Calibri"; 
   gd.lineWidth = 1; 
   gd.textAlign = 'center'; 
   gd.textBaseline = 'middle'; 
   gd.strokeText(i, x, y); 
  } 
  //點 
  for (var i = 0; i < 60; i++) { 
   gd.beginPath(); 
   var rad=i * Math.PI * 2 / 60; 
   var x = Math.sin(rad)*(r-30); 
   var y= -Math.cos(rad)*(r-30); 
   if (i % 5 == 0) { 
   gd.fillStyle = 'red'; 
   } 
   else { 
   gd.fillStyle = '#ccc' 
   } 
   gd.lineWidth = 2; 
   gd.arc(x, y, 6, 0, Math.PI * 2, false); 
   gd.fill(); 
   gd.stroke(); 
   gd.closePath(); 
  } 
  } 
  //時針 
  function drawHour(h,m){ 
  gd.save(); 
  gd.beginPath(); 
  var rad=2*Math.PI/12*h; 
  var mrad=2*Math.PI/12/60*m; 
  gd.rotate(rad+mrad); 
  gd.lineWidth=20; 
  gd.lineCap='round'; 
  gd.moveTo(0,10); 
  gd.lineTo(0,-r/3); 
  gd.stroke(); 
  gd.closePath(); 
  gd.restore(); 
  } 
  //分針 
  function drawMinutes(m){ 
  gd.save(); 
  gd.beginPath(); 
  var rad=2*Math.PI/60*m; 
  gd.rotate(rad); 
  gd.lineWidth=10; 
  gd.lineCap='round'; 
  gd.moveTo(0,10); 
  gd.lineTo(0,-r/2); 
  gd.stroke(); 
  gd.closePath(); 
  gd.restore(); 
  } 
  //秒針 
  function drawSeconds(s){ 
  gd.save(); 
  gd.beginPath(); 
  var rad=2*Math.PI/60*s; 
  gd.rotate(rad); 
  gd.fillStyle='red'; 
  gd.moveTo(-2,20); 
  gd.lineTo(2,20); 
  gd.lineTo(1,-r+100); 
  gd.lineTo(-1,-r+100); 
  gd.fill(); 
  gd.closePath(); 
  gd.restore(); 
  } 
  //圓點 
  function drawPoint(){ 
  gd.beginPath(); 
  gd.fillStyle='#fff'; 
  gd.arc(0,0,5,Math.PI*2,false); 
  gd.fill(); 
  } 
 
  function drawClock(){ 
  gd.clearRect(0,0,oC.width,oC.height); 
  var oDate=new Date(); 
  var h=oDate.getHours(); 
  var m=oDate.getMinutes(); 
  var s=oDate.getSeconds(); 
  drawBackground(); 
  drawHour(h,m); 
  drawMinutes(m); 
  drawSeconds(s); 
  drawPoint(); 
  gd.restore(); 
 
  } 
  drawClock(); 
  setInterval(drawClock,1000); 
 },false); 
 </script> 
</head> 
<body> 
<canvas width="800" height="800"></canvas> 
</body> 
</html>

效果圖:

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

相關(guān)文章

  • 如何使用js查找數(shù)組中符合條件的元素

    如何使用js查找數(shù)組中符合條件的元素

    這篇文章主要給大家介紹了關(guān)于如何使用js查找數(shù)組中符合條件的元素,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-04-04
  • window.name代替cookie的實現(xiàn)代碼

    window.name代替cookie的實現(xiàn)代碼

    window.name代替cookie的實現(xiàn)代碼,需要的朋友可以參考下。
    2010-11-11
  • 基于HTML模板和JSON數(shù)據(jù)的JavaScript交互(移動端)

    基于HTML模板和JSON數(shù)據(jù)的JavaScript交互(移動端)

    這篇文章主要介紹了基于HTML模板和JSON數(shù)據(jù)的JavaScript交互(移動端)的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • javascript實現(xiàn)一個簡單的彈出窗

    javascript實現(xiàn)一個簡單的彈出窗

    本文給大家分享的是使用javascript實現(xiàn)的一個簡單的彈出窗的代碼,非常的簡單實用,有需要的小伙伴可以參考下
    2016-02-02
  • 用戶代理字符串userAgent可實現(xiàn)的四個識別

    用戶代理字符串userAgent可實現(xiàn)的四個識別

    用戶代理字符串:navigator.userAgent ,本文給大家分享用戶代理字符串userAgent可實現(xiàn)的四個識別,需要的朋友可以參考下
    2015-09-09
  • js中實現(xiàn)繼承的五種方法

    js中實現(xiàn)繼承的五種方法

    這篇文章主要介紹了js中實現(xiàn)繼承的五種方法,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2021-01-01
  • JavaScript柯里化函數(shù)式編程面試詳解

    JavaScript柯里化函數(shù)式編程面試詳解

    這篇文章主要介紹了JavaScript柯里化函數(shù)式編程,JS柯里化是前端面試中最常見的問題之一,它可以讓你的代碼更簡潔,工作更高效,感興趣想要詳細了解可以參考下文
    2023-05-05
  • 詳解JavaScript中常用的函數(shù)類型

    詳解JavaScript中常用的函數(shù)類型

    這篇文章主要介紹了三種JavaScript中常用的函數(shù)類型,包括匿名函數(shù)、動態(tài)函數(shù)、可變參數(shù)函數(shù),感興趣的小伙伴們可以參考一下
    2015-11-11
  • JS實現(xiàn)進度條順滑版詳細方案

    JS實現(xiàn)進度條順滑版詳細方案

    最近在小程序里,做了一個類似微博刷視頻的需求,其中有一部分功能需要實現(xiàn)自定義進度條,在做完第一版之后發(fā)現(xiàn)進度條不順滑,而后想查查網(wǎng)上看有沒有什么好的方案,但最終沒找到合適的。下面給大家分享JS進度條順滑版實現(xiàn)代碼,需要的朋友參考下吧
    2021-08-08
  • 利用JavaScript實現(xiàn)的10種排序算法總結(jié)

    利用JavaScript實現(xiàn)的10種排序算法總結(jié)

    這篇文章主要介紹了利用JavaScript實現(xiàn)的十種排序算法,主要介紹了冒泡,選擇,插入,希爾,歸并,快速,堆排,計數(shù),桶排和基數(shù),有感興趣的小伙伴可以參考閱讀本文
    2023-05-05

最新評論