前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

Canvas 绘制动画时钟

首页
2016-12-02 19:35:24
Front-End
HTML5Canvas

在线演示地址 http://codepen.io/poetries/pen/gLoQzo

 <canvas id="clock" width="500" height="500">
    您的浏览器不支持此效果展示,请升级最新版本
</canvas>
@前端进阶之旅: 代码已经复制到剪贴板
var clock = document.getElementById("clock");
var context = clock.getContext("2d");

function drawClock(){
  context.clearRect(0,0,500,500);//清空画布 每画一次 都要清除前面的在重新画
  var now = new Date();
  var sec = now.getSeconds();
  var min = now.getMinutes();
  var hour = now.getHours();

  //小时必须获取浮点类型(小时 + 分数转换成的小时)
  hour = hour + min / 60;

  //将24小时进制转换为12小时 不然就是 这样的形式不好了 18:30:10
  hour = hour > 12 ? hour - 12 : hour;


  //表盘

  context.lineWidth = 10;
  context.strokeStyle = "greenblue"
  context.beginPath();
  context.arc(250,250,200,0,360,false);//true 顺时针
  context.closePath();
  context.stroke();

  //时刻度
  for(var i = 0; i < 12; i++){
    context.save();//保存当前状态
    context.lineWidth = 7;//时针粗细
    context.strokeStyle = "#000";//时针颜色
    context.translate(250,250);//设置0,0点
    context.rotate(i * 30 * Math.
fe

← Canvas 绘制粒子动画背景HTML5之API总结 →