最近看了一些HTML5的网页,感觉很高端,于是开始上手HTML5,跟着网上的视频学,收获还是不小,今天说说这几天学的HTML5新加的canvas标签,通过写这篇博客来巩固一下这几天学到的东西。
canvas标签是是HTML5新加的绘制背景的,但是正像"canvas"的意思“画布”一样,它只是一张给别人在上面画东西的东西,就像我们小学时的美术本一样是给我们来 画画的纸,自己并不能画什么东西,所以要想在布上绘制东西就需要借助canvas 的API和javascript操作实现画图或者其他的一些操作。
canvas有一些自己常用的属性,如"id","width","height","style...."不用说 ,width和height属性是设置画布的大小的,也就是规定我们所能作图的区域,style属性可以设置画布的背景颜色,同时"id"是每一个画布对象都必须要有的,因为在下面用javascript来操作canvas画布的时候要用到。
下面具体介绍一下使用HTML5来在网页上绘制一个显示当前系统时间的时钟。
Step 1:创建一个画布,并指定大小和id,同时给画布加上一个背景色
<canvas id = "clock" width = "500" height ="500" style = "background:gray"> 你的浏览器太老了不支持canvs标签,看不到时钟! </canvas>
Step2:在script中通过document.getElementById()来得到画布,同时使用getContext()方法来返回一个对象 指出访问绘图功能必要的API
<script> var clock = document.getElenmentById("clock"); var cxt = clock.getContext('2d'); </script>
Step3:使用的到的cxt进行各种属性的设置和绘制了,上代码:
<script> var clock = document.getElementById('clock'); var cxt = clock.getContext('2d'); function drawClock() { //清屏,可以看到针在移动 cxt.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小时制 hour =(hour>12)?(hour-12):hour; //绘制表盘 cxt.lineWidth=10; cxt.strokeStyle = "blue"; cxt.beginPath(); cxt.arc(250,250,200,0,360,false); cxt.stroke(); cxt.closePath(); //绘制刻度 //时刻度 for(var i = 0; i < 12; i++) { cxt.save(); //设置时针的粗细 cxt.lineWidth = 7; //设置时针的颜色 cxt.strokeStyle="#000"; //设置异次元空间的0,0点 cxt.translate(250,250); //再设置旋转角度 cxt.rotate(i*30*Math.PI/180); //开始绘制 cxt.beginPath(); cxt.moveTo(0,-170); cxt.lineTo(0,-190); cxt.stroke(); cxt.closePath(); cxt.restore(); } //分刻度 for(var i = 0; i < 60; i++) { cxt.save(); //设置分刻度的粗细 cxt.lineWidth = 5; //设置分刻度的颜色 cxt.strokeStyle = "#123"; //设置或者重置画布的0,0点 cxt.translate(250,250); //设置旋转的角度 cxt.rotate(i*6*Math.PI/180); //开始绘制 cxt.beginPath(); cxt.moveTo(0,-180); cxt.lineTo(0,-190); cxt.stroke(); cxt.closePath(); cxt.restore(); } //时针 cxt.save(); //设置时针风格 cxt.lineWidth = 7; //设置时针的颜色 cxt.strokeStyle = "#000" ; //设置异次元空间的0,0点 cxt.translate(250,250); //设置旋转的角度 cxt.rotate(hour*30*Math.PI/180); //开始绘制 cxt.beginPath(); cxt.moveTo(0,-140); cxt.lineTo(0,10); cxt.stroke(); cxt.closePath(); cxt.restore(); //分针 cxt.save(); //设置分针的风格 cxt.lineWidth = 5; cxt.strokeStyle = "#000"; //设置异次元空间分针画布的圆心 cxt.translate(250,250); //设置旋转角度 cxt.rotate(min*6*Math.PI/180); //开始绘制 cxt.beginPath(); cxt.moveTo(0,-160); cxt.lineTo(0,15); cxt.stroke(); cxt.closePath(); cxt.restore(); //秒针 cxt.save(); //设置秒针的风格 cxt.lineWidth = 3; cxt.strokeStyle = '#000'; //设置异次元分针画布的圆心 cxt.translate(250,250); //设置旋转角度 cxt.rotate(sec*6*Math.PI/180); //绘制秒针 cxt.beginPath(); cxt.moveTo(0,-170); cxt.lineTo(0,20); cxt.stroke(); cxt.closePath(); //画出时针,分针,秒针的交叉点 cxt.beginPath(); cxt.arc(0,0,5,0,360,false); //设置填充样式 cxt.fillStyle = "gray"; cxt.fill(); //设置笔触样式(秒针已设置) cxt.stroke(); cxt.closePath(); //设置秒针前段的小圆点 cxt.beginPath(); cxt.arc(0,-150,5,0,360,false); //设置填充样式 cxt.fillStyle="gray"; cxt.fill(); //设置笔触样式(秒针已设置) cxt.stroke(); cxt.closePath(); cxt.restore(); } //使用setInterval(方法名,每隔多少毫秒重绘一下)每隔一段时间重新绘制,看到动的效果 drawClock(); //刷新不出现延迟 setInterval(drawClock,1000); </script>
在上面的代码中主要就是标红加粗 的那几个属性和方法下面细说一下:
getContext() |
返回一个对象,指出访问绘图功能必要的API |
lineWidth |
设置或返回当前的线条宽度(1--10) |
strokeStyle |
设置或返回用于笔触的颜色、渐变或模式(线条的) |
beginPath() |
起始一条路径,或重置当前路径,每画一个新的图形都要重置一个新的路径,不然所有的图会连起来 |
closePath() |
创建从当前点回到起始点的路径,绘图就发生在beginPath()和closePath()中间,有始有终 |
arc() |
创建弧/曲线(用于创建圆形或部分圆),有六个参数,依次是圆心x,y,坐标,半径,画过的幅度,后面的boolean值控制顺时针还是逆时针 |
stroke() |
绘制已定义的路径,不调用这个方法就不会有东西出来。画的是线条,对应的有填充的fill() |
save() |
保存当前环境的状态,主要是用在旋转的时候,对应的是下面的释放restore()方法,他们两个是成对出现 |
restore |
返回之前保存过的路径状态和属性。 |
translate() |
重新映射画布上的 (0,0) 位置,目前我只知道主要用在旋转那里,重置圆心,后面的都要以当前的圆心为标准 |
moveTo() |
把路径移动到画布中的指定点,不创建线条,相当于起始点 |
lineTo() |
添加一个新点,和上面的moveTo()指定的点构成一条直线 |
fillStyle() | 设置填充的样式,颜色,和上面的strokeStyle()对应记忆 |
fill() | 填充当前绘图,没有这个方法也不会有显示,和上面的stroke()对应记忆 |
setInterval() | 指定相应的时间再次执行指定的方法,两个参数,一个是方法名,一个是时间 |
clearRect() |
在给定的矩形内清除指定所画的东西。 |
rotate() | 旋转当前绘图,传入一个角度的参数 |
以上是这个时钟主要用到的canvas中的API和属性,canvas中的属性和方法是很多的,上面只是一小部分,多练练,多用就会熟悉了。
PS:
1.使用HTML5中的canvas绘制一些图像还是很简单的,感觉比java简单多了。
2:本人在网页这一块也是新手一枚,算小白一个,可能很多地方写的也不全面。也可能说法有错误,很多地方知道要那么用,但是具体为什么要那么用 还是没怎么搞懂,引用电路实验老师的一句话就是“原理没搞懂”,慢慢来,一点一点进步咯,抱拳!
相关推荐
这篇博文“HTML5 Canvas绘制时钟”旨在介绍如何利用Canvas API创建一个实时更新的数字或指针式时钟。我们将深入探讨Canvas的基础知识、相关API以及实现时钟的具体步骤。 1. HTML5 Canvas基础 HTML5 Canvas是一个二...
HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制。这个技术为网页带来了丰富的交互性和视觉效果。在这个“html5 canvas画布绘制圆形时钟代码”示例中,我们将深入探讨如何利用Canvas ...
使用canvas绘制的实时时钟
HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,创造出丰富的视觉效果。在这个“html5 canvas云粒子数字时钟动画特效”中,我们看到的是Canvas技术与时间显示、粒子系统相结合的...
在我们开始编写代码之前,需要了解绘制时钟的基本思路。绘制一个时钟,需要确定以下几个关键部分:钟面、时针、分针和秒针。这些元素需要在canvas上精确地绘制,它们的位置会随着时间的推移而改变。 接下来,我们...
接下来定义`drawClock`方法,用于在canvas上绘制时钟: ```javascript drawClock() { const ctx = this.data.ctx; const now = new Date(); // 清除画布 ctx.clearRect(0, 0, 300, 300); // 绘制时钟圆盘 ...
这个“html5 canvas绘制时钟表时间”项目就是利用Canvas API来实现一个实时显示时间的时钟效果。下面将详细解释相关知识点。 1. **HTML5 Canvas 基础**: - Canvas 是HTML5中的一个元素,通过JavaScript API提供了...
在JavaScript和HTML5的世界里,Canvas元素是一个强大的工具,它允许开发者在网页上进行动态图形绘制。本实例将深入探讨如何使用JavaScript和HTML5的Canvas API来创建一个可交互的网页时钟。这个时钟不仅有传统的指针...
使用html5中的canvas标签+jquery绘制的时钟走动代码
JavaScript Canvas 是HTML5引入的一个强大的图形绘制工具,它允许开发者在网页上动态绘制2D图形。在这个场景中,我们将深入探讨如何使用JavaScript和Canvas API来创建一个实时更新的时钟。 首先,我们需要在HTML中...
为了在Canvas上绘制时钟,我们需要获取到Canvas的2D渲染上下文,通过`canvas.getContext('2d')`方法实现。 时钟的绘制可以分为几个部分:时针、分针、秒针和数字刻度。每一部分都需要计算其在圆上的位置,这涉及到...
HTML5 Canvas 制作时钟 HTML5 的 Canvas 元素提供了一个强大的绘图功能,通过使用 ...在这篇文章中,我们学习了如何使用 Canvas 元素来绘制一个时钟,包括绘制时钟的基本架构、小时刻度、分钟刻度和时钟的指针。
HTML5 Canvas技术是现代网页开发中的一个重要组成部分,它允许开发者在网页上进行动态图形绘制,提供了丰富的绘图接口,使得创建交互式图形和动画成为可能。在这个“HTML5 Canvas粒子数字时钟特效”中,开发者利用...
利用html5中的canvas绘制的时钟,动态的呈现当前的时分秒
HTML5的Canvas是一个强大的网页图形绘制工具,它允许开发者通过JavaScript来绘制2D图形,创建动态视觉效果。在这个“HTML5 canvas时钟效果.zip”压缩包中,包含了一个使用Canvas API实现的时钟显示功能。这个时钟...
HTML5 Canvas 是一种在网页上绘制图形的API,它允许开发者直接在浏览器中进行动态图形渲染,无需依赖任何插件。在这个"HTML5 Canvas 动画时钟"的主题中,我们将深入探讨如何利用Canvas API创建一个实时更新的、美观...
总结来说,HTML5 canvas背景图片圆形时钟是一个结合了HTML5、JavaScript和Canvas API的实例,它教会我们如何在canvas上绘制图形、动态更新时间、以及更换背景图片,对于学习和掌握HTML5的动态图形编程有着重要的实践...
本教程将详细介绍如何使用canvas绘制一个动态的钟表,这涉及到JavaScript和Canvas API的基础知识。 首先,我们需要在HTML页面中创建一个canvas元素,并设置其id以便在JavaScript中引用: ```html <canvas id=...
HTML5 Canvas技术是现代网页开发中的一个重要组成部分,它允许开发者在网页上进行动态图形绘制,提供了丰富的绘图功能,能够创建出各种复杂且引人入胜的视觉效果。这款"HTML5 Canvas圆形灯笼时钟动画特效"就是利用...