HTML5之Canvas画布
先上代码:
<canvas width="1000" height="800">浏览器不支持HTML5!</canvas>
<script type="text/javascript">
var canvas = document.querySelector("canvas");
var context = canvas.getContext('2d'); // 设置阴影
context.shadowOffsetX = 5.0;
context.shadowOffsetY = 5.0;
context.shadowColor = "rgba(50%,50%,50%,0.75)";
context.shadowBlur = 10.0; // 画一个矩形图形
context.fillStyle = 'red';
context.fillRect(2, 2, 300, 200); // 加边框
context.strokeRect(0, 0, 304, 204); // 画一个矩形
context.fillStyle = 'rgba(255,255,0,0.5)';
context.fillRect(250, 150, 300, 200); // 清除指定区域
context.clearRect(350, 200, 100, 100);
</script>
- Rectangles 绘制矩形对象
- context.fillRect(x,y,w,h) // 绘制矩形
- context.strokeRect(x,y,w,h) // 绘制边框
- context.clearRect(x,y,w,h) // 清除指定区域
- Colors 设置颜色
- 指定颜色(红色)
指定方法 颜色值
-----------------------------
Hexa(十六进制) #FF0000
Hexa(short) #F00
RGB rgb(255,0,0)
RGB(percent) rgb(100%,0%,0%)
RGBA rgb(255,0,0,0.7)
RGBA(percent) rgba(100%,0%,0%,0.7)
HSL hsl(0,100%,50%)
HSLA hsla(0,100%,50%,1.0)
SVG(颜色名字) red
- shadow 阴影
context.shadowOffsetX = 5.0;
context.shadowOffsetY = 5.0;
context.shadowColor = "rgba(50%,50%,50%,0.75)";
context.shadowBlur = 10.0;
- Gradients 渐变
- 1.线性渐变
// 起始位置截至位置
var linGrad = context.createLinearGradient(0,450,1000,450); // 渐变中节点
linGrad.addColorStop(0.0,'red');
linGrad.addColorStop(0.5,'yellow');
linGrad.addColorStop(0.7,'orange');
linGrad.addColorStop(1.0,'purple'); // 应用到图形上
context.fillStyle = linGrad;
context.fillRect(0,450,1000,450);
- 2. 中心区域渐变
// 6组数字,代表 2 个圆
var radGrad = context.createRadialGradient(260,320,40,200,400,200); radGrad.addColorStop(0.0, 'yellow');
radGrad.addColorStop(0.9, 'orange');
radGrad.addColorStop(1.0, 'rgba(0,0,0,0)'); context.fillStyle = radGrad;
context.fillRect(0, 200, 400, 400);
- Paths 绘制路径线条
- 绘制过程
1.开始绘制 beginPath()
2.定义所有节点
3.用stroke实现绘制
CreateLineA(); // 绘制一个 A 型
CreateQua(); // 绘制一条 抛物线
CreateBez(); // 绘制一条 贝塞尔曲线
CreateArc(); // 绘制一个 自定义曲线
CreateRoundedRect(); // 绘制一个 圆角图形
CreateRect(); // 绘制一个 矩形 // 绘制一个 A 型
function CreateLineA() {
context.fillStyle = 'red';
context.strokeRect(0, 0, 300, 300); // 绘制边框
// 1. 开始绘制beginPath()
context.beginPath(); // 2. 定义所有节点
context.moveTo(100, 200); // 将笔移动到该坐标
context.lineTo(150, 50); // 绘制到指定坐标
context.lineTo(200, 200); // 再接着绘制到另一个坐标 context.moveTo(100, 120); // 再将笔移动到别的区域
context.lineTo(200, 120); // 再绘制一条线 context.textAlign = 'left'; // 设置水平对齐
context.textBaseline = 'alphabetic'; // 设置垂直对齐
context.font = 'bold 16px sans-serif'; // 设置输出字体样式
context.fillText('(100/200)', 50, 220); // 在指定坐标输出文字
context.fillText('(150/50)', 115, 30);
context.fillText('(200/200)', 150, 220);
context.fillText('(100/120)', 40, 100);
context.fillText('(200/120)', 180, 100); // 3. 用stroke实现绘制
context.stroke();
} // 绘制一条抛物线
function CreateQua() {
context.strokeRect(320, 0, 300, 300); // 绘制边框 context.beginPath();
context.moveTo(350, 250);
context.quadraticCurveTo(400, 50, 600, 50);
context.stroke();
} // 绘制一条贝塞尔曲线
function CreateBez() {
context.strokeRect(640, 0, 300, 300); // 绘制边框 context.beginPath();
context.moveTo(670, 250);
context.bezierCurveTo(880, 300, 700, 30, 900, 50);
context.stroke();
} // 绘制一个 自定义曲线
function CreateArc() {
context.strokeRect(0, 320, 300, 300); // 绘制边框
context.beginPath();
context.moveTo(20, 430);
context.arcTo(20, 370, 270, 370, 60);
context.stroke();
} // 绘制一个 圆角图形
function CreateRoundedRect() {
context.strokeRect(320, 320, 300, 300); // 绘制边框 x = 340;
y = 370;
w = 250;
h = 200;
r = 60; context.beginPath();
context.moveTo(x, y + r);
context.arcTo(x, y, x + w, y, r);
context.arcTo(x + w, y, x + w, y + h, r);
context.arcTo(x + w, y + h, x, y + h, r);
context.arcTo(x, y + h, x, y, r);
context.closePath(); // 闭合曲线
context.stroke();
} // 绘制一个矩形对象
function CreateRect() {
context.strokeRect(640, 320, 300, 300); // 绘制边框 context.beginPath();
context.rect(660,340,250,250);
context.stroke();
}
HTML5之Canvas画布的更多相关文章
- 用html5的canvas画布绘制贝塞尔曲线
查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...
- 【HTML5】Canvas画布
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
- 【HTML5】canvas画布练习
第一步:获取画布元素 var canvas = document.getElementById("myCanvas"); var context = canvas.getConte ...
- 自学HTML5第四节(canvas画布详解)
canvas画布好像可是说是HTML5的精华了,一定要学好,嗯嗯,绚丽的东西就要从基础的开始.... 先看看啥玩意叫做canvas 什么是 Canvas? HTML5 的 canvas 元素使用 Ja ...
- html5中canvas的使用 获取鼠标点击页面上某点的RGB
1.html5中的canvas在IE9中可以跑起来.在IE8则跑不起来,这时候就需要一些东西了. 我推荐这种方法,这样显得代码不乱. <!--[if lt IE9]> <script ...
- HTML5之Canvas时钟(网页效果--每日一更)
今天,带来的是使用HTML5中Canvas标签实现的动态时钟效果. 话不多说,先看效果:亲,请点击这里 众所周知,Canvas标签是HTML5中的灵魂,HTML5 Canvas是屏幕上的一个由Java ...
- HTML5 之Canvas绘制太阳系
<!DOCTYPE html> <html> <head> <title>HTML5_Canvas_SolarSystem</title> ...
- Particles.js基于Canvas画布创建粒子原子颗粒效果
文章目录 使用方法 自定义参数 相关链接 Particles.js是一款基于HTML5 Canvas画布的轻量级粒子动画插件,可以设置粒子的形状.旋转.分布.颜色等属性,还可以动态添加粒子,效果非常炫 ...
- html5 之 canvas 相关知识(一)概念及定义
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
随机推荐
- mysql之数据库备份与恢复
备份与恢复 系统运行中,增量备份与整体备份. 例如:每周日整体备份一次,周一到周六只备份当天. 如果周五的数据出了问题,可以用周日的整体+周一.周二.周三.周四来恢复. 备份的工具: 有第三方的收费备 ...
- C#基础知识之方法重载总结
1.首先解释一下什么是方法重载? 方法重载是指在同一个类中方法同名,参数不同,调用时根据实参的形式,选择与他匹配的方法执行操作的一种技术. 这里所说的参数不同是指以下几种情况: ① 参数的类型 ...
- CAS总结之Ticket篇
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 使用Eclipse建立Maven的SpringMVC项目
非常感谢博客的大神,让我成功地构建项目 http://limingnihao.iteye.com/blog/830409 但在依照这篇文章构建构建时遇到了一些问题,在这里总结一下: 问题一.2.3.2 ...
- java_jdbc_可变参数_MetaData
异常处理参考3层解耦 ublic class ScrollTest { public static void main(String[] args) throws SQLException { // ...
- Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件
Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...
- Mysql在windows下的免安装配置步骤和重新安装的步骤
windows下mysql免安装配置 1. 下载mysql免安装压缩包 下载mysql-5.6.22-winx64.zip 解压到本地D:\mysql-5.6.22-winx64 2. 修改配置文件 ...
- OVS操作总结
转载:http://www.aboutyun.com/thread-11777-1-1.html Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟 ...
- 使用AndroidScreenSlidePager开源库
一.下载地址 https://github.com/LyndonChin/AndroidScreenSlidePager 点击右侧的Download ZIp按钮进行下载.然后解压缩到本地. 二.使用方 ...
- [转载][记录]shell 批量修改文件名
参考了:[新手入门] shell脚本批量修改文件名 4楼回复 我刚好是在vagrant+ubuntu中进行开发,windows手动修改太麻烦. #!/bin/ksh ls *.htm | while ...