php绘制时钟刻度,html5 画布时钟效果
网上看到个时钟效果,感觉挺好看,转了来,具体通过html5画布技术实现的,效果图如下:
具体 html 代码:
html5 时钟效果
/**
* Created by Administrator on 2017/3/28 0028.
* source from siwuxie095
*/
var canvas = document.getElementById('dom');
var context = canvas.getContext('2d');
var height = context.canvas.height;
var width = context.canvas.width;
var r = width / 2;
var rem = width/200;
//时钟背景
function drawBackground() {
context.save();
context.translate(r, r);
context.beginPath();
context.lineWidth = 8*rem;
context.strokeStyle = "#000"
context.arc(0, 0, r - 5*rem, 0, 2 * Math.PI, false);
context.stroke();
context.closePath();
//遍历小时数
var houseNumble = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2];
houseNumble.forEach(function (number, i) {
context.textAlign = 'center';
context.textBaseline = 'middle'
context.font = 18*rem+'px Arial'
var rad = 2 * Math.PI / 12 * i;
var x = Math.cos(rad) * (r - 30*rem);
var y = Math.sin(rad) * (r - 30*rem);
context.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*rem);
var y = Math.sin(rad) * (r - 18*rem);
context.beginPath();
if (i % 5 == 0) {
context.fillStyle = "#000"
context.arc(x, y, 2*rem, 0, 2 * Math.PI);
} else {
context.fillStyle = "#ccc"
context.arc(x, y, 2*rem, 0, 2 * Math.PI);
}
context.fill();
context.closePath();
}
}
//定义时针
function drawHour(hour,minute) {
context.save();
context.beginPath();
context.lineWidth = 6*rem;
context.lineCap = 'round'
var rad = 2 * Math.PI / 12 * hour;
var mrad = 2* Math.PI/12/60 * minute;
context.rotate(rad+mrad);
context.moveTo(0, 10*rem);
context.lineTo(0, -r / 2);
context.stroke();
context.restore();
}
//定义分针
function drawMinute(minute) {
context.save();
context.beginPath();
context.lineWidth = 3*rem;
context.lineCap = 'round';
var rad = 2 * Math.PI / 60 * minute;
context.rotate(rad);
context.moveTo(0, 15*rem);
context.lineTo(0, -r + 34)
context.stroke();
context.restore();
}
//定义秒钟
function drawSecond(second) {
context.save();
context.beginPath();
context.lineWidth = 2*rem;
context.lineCap = 'round';
context.fillStyle = "red"
var rad = 2 * Math.PI / 60 * second;
context.rotate(rad);
context.moveTo(-2 ,20);
context.lineTo( 2, 20);
context.lineTo( 1, -r + 18);
context.lineTo( -1, -r + 18);
context.fill();
context.restore();
}
//画中心点
function drawDot() {
context.beginPath();
context.fillStyle = "#fff"
context.arc(0, 0, 4*rem, 0, 2 * Math.PI, false);
context.fill();
}
//时间函数,让时钟根据当前时间跳动
function Draw() {
context.clearRect(0,0,width,height);
var time= new Date();
var hour =time.getHours();
var minute = time.getMinutes();
var second = time.getSeconds();
drawBackground();
drawHour(hour,minute);
drawMinute(minute);
drawSecond(second);
drawDot();
context.restore()
}
Draw();
setInterval(Draw,1000);
php绘制时钟刻度,html5 画布时钟效果相关推荐
- html5绘制时钟刻度,html5 canvas 画的简易时钟
时钟 //开始之前必须懂得时针各指针的弧度计算公式. var canvas,context; function window_onload(){ canvas = document.getElemen ...
- html5画布时钟cnsd,canvas动画时钟
最近在学canvas,然后根据MDN上的例子做了个动画时钟(为什么要造个轮子,因为丑..) 这是MDN上的例子,怎么说呢,比较复古吧. 首先,找一张时钟的图片,就是下面这张了. --来自bigger ...
- html5画布时钟cnsd,天地图分省图源之作教程—-(山东-环保-征程)友情提供
以下方法由(山东-环保-征程)友情提供 1.查找图源 (1)登录天地图山东首页(http://www.sdmap.gov.cn/index.html)→资源中心→影像地图→山东省影像地图[详细信息], ...
- html 绘制正方形,使用HTML5画布绘制正方形
打开记事本写下以下代码: var square=a.getContext("2d");//这里通过square获取处理API的上下文contextsquare.beginPath( ...
- html5 画布绘制时钟
用Html5实现时钟,包括转盘时钟和电子时钟,显示当前日期时间 绘制步骤: (1)先获取画布,设置画布的大小: (2)在js中获取画布对象,获取画布的画笔对象,设置画笔的一些属性: (3)获取系统当前 ...
- html5canvas绘制时钟,JavaScript html5 canvas绘制时钟效果
本文实例讲述了JavaScript+html5 canvas绘制时钟效果.分享给大家供大家参考,具体如下: HTML部分: canvas绘图 JavaScript部分: function init() ...
- 表盘时针的html代码,html5画布操作的简单学习-简单时钟
html5画布操作的简单学习-简单时针 效果图 一.什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. ...
- 使用 HTML5 Canvas 绘制出惊艳的水滴效果
HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...
- html制作圆盘时钟,jquery+html5制作超酷的圆盘时钟表
自己封装的一个用HTML5+jQuery写的时钟表 代码: 超酷数码钟表 //引用的是在线jquery地址,如果不行请自行下载切换 (function($){ $.fn.drawClock = fun ...
最新文章
- Java Web开发API Boy如何进阶?
- Get Started with Service Metrics
- 成功解决RuntimeError: Selected KDE bandwidth is 0. Cannot estiamte density
- Python3的bytes/str之别
- 简单的C++线程类实现, windows平台
- JavaWeb工程师知识图谱
- Dubbo 框架设计与源码解读(配置解析优先级、线程分配、负载均衡、容错方案)
- idea中使用git直接提交本地写好的代码
- 05-BIO,NIO,AIO几种通讯模式的比较
- php 并发控制中的独占锁
- echart的x轴换行
- php在类里如何调用call_user_func_array《细说php2》
- vue中keep-alive缓存功能使用详解
- php 验证链接,PHP判断链接是否有效 的方法
- 信息论与编码冯桂周林著答案_信息论与编码(信息与通信工程高等学校电子信息类专业系列教材)...
- mysql查询成绩表中课程编号升序_数据库的常见题型--------------(查询)
- 港股交易最大手数是如何规定的?
- iOS生成gif图片
- 2048java设计报告_2048设计报告.doc
- Spring 教程(一)
热门文章
- 2017.10.27涩会题大乱斗部分题解
- vivo新系统鸿蒙,截胡华为鸿蒙系统!vivo霸气官宣新系统将登场:天生极致流畅...
- mount ntfs to centos5
- N76E003 学习一 点亮LED
- ThreadLocal之强、弱、软、虚引用
- 乡村少年宫计算机小组活动教案,小学少年宫兴趣小组烹饪教案
- 传统支付方式不能满足线下支付的需求
- 【​观察】得生态者得云天下 阿里、腾讯、浪潮、华为对决云计算2.0
- python与分形0000 - 分形世界
- 工信部通报下架60款APP:关联有赞、三六零、唯品会等上市公司