HTML5canvas作品网站,HTML5 Canvas

news/2024/5/19 12:42:35/文章来源:https://blog.csdn.net/weixin_35562134/article/details/117746110

HTML5 Canvas

标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形。

在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字。

837947d8066b6d86b010d10e0ddd458f.png

什么是 Canvas?

HTML5  元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.

标签只是图形容器,您必须使用脚本来绘制图形。

你可以通过多种方法使用Canva绘制路径,盒、圆、字符以及添加图像。

浏览器支持

1659f6a3885f3c2d01aa82df6e5e94da.gif

62f12789ba359b48977bf74ab511f4e5.gif

567fc4fa5dba4212358124900b6d5be8.gif

7db4e566c1fbead92de2cc54cd5bc37c.gif

f3c3e0ef7bb8cbef92ecbf96b28be27f.gif

Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持   元素.

注意: Internet Explorer 8 及更早 IE 版本的浏览器不支持   元素.

创建一个画布(Canvas)

一个画布在网页中是一个矩形框,通过  元素来绘制.

注意: 默认情况下   元素没有边框和内容。

简单实例如下:

注意:标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小.

提示: 你可以在HTML页面中使用多个   元素.

使用 style 属性来添加边框:

实例

style="border:1px solid #000000;">

运行实例 »

点击 "运行实例" 按钮查看在线实例

使用 JavaScript 来绘制图像

canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:

实例

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例解析:

首先,找到 元素:

var c=document.getElementById("myCanvas");

然后,创建 context 对象:

var ctx=c.getContext("2d");

getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

下面的两行代码绘制一个红色的矩形:

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle默认设置是#000000(黑色)。

fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。

Canvas 坐标

canvas 是一个二维网格。

canvas 的左上角坐标为 (0,0)

上面的 fillRect 方法拥有参数 (0,0,150,75)。

意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。

Canvas - 路径

在Canvas上画线,我们将使用以下两种方法:

moveTo(x,y) 定义线条开始坐标

lineTo(x,y) 定义线条结束坐标

绘制线条我们必须使用到 "ink" 的方法,就像stroke().

实例

定义开始坐标(0,0), 和结束坐标 (200,100). 然后使用 stroke() 方法来绘制线条:

71534cf32374c92d04995f4b655d7796.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.moveTo(0,0);

ctx.lineTo(200,100);

ctx.stroke();

运行实例 »

点击 "运行实例" 按钮查看在线实例

在canvas中绘制圆形, 我们将使用以下方法:

arc(x,y,r,start,stop)

实际上我们在绘制圆形时使用了 "ink" 的方法, 比如 stroke() 或者 fill().

实例

使用 arc() 方法 绘制一个圆:

f442156d7a883850d9500fa2229f7663.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.beginPath();

ctx.arc(95,50,40,0,2*Math.PI);

ctx.stroke();

运行实例 »

点击 "运行实例" 按钮查看在线实例

Canvas - 文本

使用 canvas 绘制文本,重要的属性和方法如下:

font - 定义字体

fillText(text,x,y) - 在 canvas 上绘制实心的文本

strokeText(text,x,y) - 在 canvas 上绘制空心的文本

使用 fillText():

实例

使用 "Arial" 字体在画布上绘制一个高 30px 的文字(实心):

cbd3e799cc1aa3608a80559537bc3403.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.font="30px Arial";

ctx.fillText("Hello World",10,50);

运行实例 »

点击 "运行实例" 按钮查看在线实例

使用 strokeText():

实例

使用 "Arial" 字体在画布上绘制一个高 30px 的文字(空心):

081727681c389d9d0b32b916dd79bbdb.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.font="30px Arial";

ctx.strokeText("Hello World",10,50);

运行实例 »

点击 "运行实例" 按钮查看在线实例

Canvas -  渐变

渐变可以填充在矩形, 圆形, 线条, 文本等等, 各种形状可以自己定义不同的颜色。

以下有两种不同的方式来设置Canvas渐变:

createLinearGradient(x,y,x1,y1) - 创建线条渐变

createRadialGradient(x,y,r,x1,y1,r1) - 创建一个径向/圆渐变

当我们使用渐变对象,必须使用两种或两种以上的停止颜色。

addColorStop()方法指定颜色停止,参数使用坐标来描述,可以是0至1.

使用渐变,设置fillStyle或strokeStyle的值为渐变,然后绘制形状,如矩形,文本,或一条线。

使用 createLinearGradient():

实例

创建一个线性渐变。使用渐变填充矩形:

a51b1e8e8fcb7818ac4936896aec956c.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.font="30px Arial";

ctx.fillText("Hello World",10,50);

运行实例 »

点击 "运行实例" 按钮查看在线实例

使用 createRadialGradient():

实例

创建一个径向/圆渐变。使用渐变填充矩形:

2017aaa1a57fb92b6e5c1d8955ecd7ed.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

// Create gradient

var grd=ctx.createLinearGradient(0,0,200,0);

grd.addColorStop(0,"red");

grd.addColorStop(1,"white");

// Fill with gradient

ctx.fillStyle=grd;

ctx.fillRect(10,10,150,80);

运行实例 »

点击 "运行实例" 按钮查看在线实例

Canvas - 图像

把一幅图像放置到画布上, 使用以下方法:

drawImage(image,x,y)

使用图像:

0e0a0f80a6ff92a383e5c6120aab8e90.png

实例

把一幅图像放置到画布上:

a87d878ad99e29a90ec00d64a4473663.png

实例

html>

Image to use:

Canvas:

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

var img=document.getElementById("scream");

img.onload = function() {

ctx.drawImage(img,10,10);

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

HTML Canvas 参考手册

标签的完整属性可以参考Canvas 参考手册.

The HTML  Tag

Tag

描述

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。

HTML5 Canvas

标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形。

在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字。

837947d8066b6d86b010d10e0ddd458f.png

什么是 Canvas?

HTML5  元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.

标签只是图形容器,您必须使用脚本来绘制图形。

你可以通过多种方法使用Canva绘制路径,盒、圆、字符以及添加图像。

浏览器支持

1659f6a3885f3c2d01aa82df6e5e94da.gif

62f12789ba359b48977bf74ab511f4e5.gif

567fc4fa5dba4212358124900b6d5be8.gif

7db4e566c1fbead92de2cc54cd5bc37c.gif

f3c3e0ef7bb8cbef92ecbf96b28be27f.gif

Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持   元素.

注意: Internet Explorer 8 及更早 IE 版本的浏览器不支持   元素.

创建一个画布(Canvas)

一个画布在网页中是一个矩形框,通过  元素来绘制.

注意: 默认情况下   元素没有边框和内容。

简单实例如下:

注意:标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小.

提示: 你可以在HTML页面中使用多个   元素.

使用 style 属性来添加边框:

实例

style="border:1px solid #000000;">

运行实例 »

点击 "运行实例" 按钮查看在线实例

使用 JavaScript 来绘制图像

canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:

实例

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例解析:

首先,找到 元素:

var c=document.getElementById("myCanvas");

然后,创建 context 对象:

var ctx=c.getContext("2d");

getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

下面的两行代码绘制一个红色的矩形:

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle默认设置是#000000(黑色)。

fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。

Canvas 坐标

canvas 是一个二维网格。

canvas 的左上角坐标为 (0,0)

上面的 fillRect 方法拥有参数 (0,0,150,75)。

意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。

Canvas - 路径

在Canvas上画线,我们将使用以下两种方法:

moveTo(x,y) 定义线条开始坐标

lineTo(x,y) 定义线条结束坐标

绘制线条我们必须使用到 "ink" 的方法,就像stroke().

实例

定义开始坐标(0,0), 和结束坐标 (200,100). 然后使用 stroke() 方法来绘制线条:

71534cf32374c92d04995f4b655d7796.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.moveTo(0,0);

ctx.lineTo(200,100);

ctx.stroke();

运行实例 »

点击 "运行实例" 按钮查看在线实例

在canvas中绘制圆形, 我们将使用以下方法:

arc(x,y,r,start,stop)

实际上我们在绘制圆形时使用了 "ink" 的方法, 比如 stroke() 或者 fill().

实例

使用 arc() 方法 绘制一个圆:

f442156d7a883850d9500fa2229f7663.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.beginPath();

ctx.arc(95,50,40,0,2*Math.PI);

ctx.stroke();

运行实例 »

点击 "运行实例" 按钮查看在线实例

Canvas - 文本

使用 canvas 绘制文本,重要的属性和方法如下:

font - 定义字体

fillText(text,x,y) - 在 canvas 上绘制实心的文本

strokeText(text,x,y) - 在 canvas 上绘制空心的文本

使用 fillText():

实例

使用 "Arial" 字体在画布上绘制一个高 30px 的文字(实心):

cbd3e799cc1aa3608a80559537bc3403.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.font="30px Arial";

ctx.fillText("Hello World",10,50);

运行实例 »

点击 "运行实例" 按钮查看在线实例

使用 strokeText():

实例

使用 "Arial" 字体在画布上绘制一个高 30px 的文字(空心):

081727681c389d9d0b32b916dd79bbdb.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.font="30px Arial";

ctx.strokeText("Hello World",10,50);

运行实例 »

点击 "运行实例" 按钮查看在线实例

Canvas -  渐变

渐变可以填充在矩形, 圆形, 线条, 文本等等, 各种形状可以自己定义不同的颜色。

以下有两种不同的方式来设置Canvas渐变:

createLinearGradient(x,y,x1,y1) - 创建线条渐变

createRadialGradient(x,y,r,x1,y1,r1) - 创建一个径向/圆渐变

当我们使用渐变对象,必须使用两种或两种以上的停止颜色。

addColorStop()方法指定颜色停止,参数使用坐标来描述,可以是0至1.

使用渐变,设置fillStyle或strokeStyle的值为渐变,然后绘制形状,如矩形,文本,或一条线。

使用 createLinearGradient():

实例

创建一个线性渐变。使用渐变填充矩形:

a51b1e8e8fcb7818ac4936896aec956c.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.font="30px Arial";

ctx.fillText("Hello World",10,50);

运行实例 »

点击 "运行实例" 按钮查看在线实例

使用 createRadialGradient():

实例

创建一个径向/圆渐变。使用渐变填充矩形:

2017aaa1a57fb92b6e5c1d8955ecd7ed.png

实例

html>

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

// Create gradient

var grd=ctx.createLinearGradient(0,0,200,0);

grd.addColorStop(0,"red");

grd.addColorStop(1,"white");

// Fill with gradient

ctx.fillStyle=grd;

ctx.fillRect(10,10,150,80);

运行实例 »

点击 "运行实例" 按钮查看在线实例

Canvas - 图像

把一幅图像放置到画布上, 使用以下方法:

drawImage(image,x,y)

使用图像:

0e0a0f80a6ff92a383e5c6120aab8e90.png

实例

把一幅图像放置到画布上:

a87d878ad99e29a90ec00d64a4473663.png

实例

html>

Image to use:

Canvas:

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

var img=document.getElementById("scream");

img.onload = function() {

ctx.drawImage(img,10,10);

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

HTML Canvas 参考手册

标签的完整属性可以参考Canvas 参考手册.

The HTML  Tag

Tag

描述

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_804684.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5搭建网站框架,web前端快速搭建网站框架之vue

原标题:web前端快速搭建网站框架之vueVue是web前端快速搭建网站的框架之一。它与jQuery有所不同,是以数据驱动web界面(以操作数据改变页面,而jQuery是以操作节点来改变页面),同时,vue还实现了数据的双向绑定&#xff0…

咀嚼《大型网站技术架构》-架构初识

为什么要看这本书? 我在一家公司工作了两三年,跟团队着一起开发p2p网站,部分项目是沿用前人留下的“遗产”代码,加以修修补补凑合成的。 随着业务量越来越大,用户量越来越多,老系统必定遇到瓶颈&#xff…

网站的高可用

看了《大型网站技术架构》这本书之后,吸取了其中的精华,对网站的高可用议题进行了一遍梳理。如下将从高可用的思路,衡量标准,实施方案来做总结。 对高可用的理解 一个系统能保证不论有多少并发量,都能够正常提供服务…

网站的服务器256位加密,Windows Server 2008 R2 IIS 7.5开启TLS 1.2和256位加密

一般我们申请下来的证书都是256位加密的,因为2016年开始老版本的证书都会被提示危险网站。首先看一下服务器开启TLS1.2256加密之前和开启之后的区别;开启之前:开启之后:由于Chrome40不再支持SSL 3.0了,GOOGLE认为SSL3.…

网站的 计算机主机作用是什么意思,什么是虚拟主机?有什么作用?

虚拟主机(英语:virtual hosting)或称共享主机(shared web hosting),又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行…

delphi select 搜索不到特殊字符_衡阳关键词优化_通过监控品牌词可清楚反应搜索引擎优化情况及网站面临的问题...

发布时间:2020-11-04 11:11:44在做SEO的过程中,实际上很少有运营商会关注企业网站品牌词的变化,甚至有些网站仍然忽视了“品牌词”的概念。为什么SEO员工每天都需要监控品牌词?因为在监测品牌词搜索量的过程中,它清楚地反映了网站…

安卓 fragment内显示网站_如何开发一款以太坊安卓钱包系列3 - 资产信息展示

这是如何开发以太坊(安卓)钱包系列第3篇, 钱包账号资产信息展示,展示信息主要包括账号地址、eth余额及该账号所拥有的Token及余额。预备知识 MVVM本文会涉及和UI界面的交互,提前理解下界面和数据如何交互是非常有必要的…

常州网站服务器_常州分类信息门户网站定制 常州网站优化效果 常州百度下拉词推广 常州网站建设流程 常州网站建设公司 常州网站定制网站开发价格...

龙腾网络网站制作|网络推广一物一码系统|微信商城制作电话:13292208571(微信)手机上的许多用户都会注意到像素的使用,在分辨率下面往往使整个网页很压制,有种不透气的感觉,其实这个宽度是指在电脑上的宽度,不代表视觉&…

.Net 支付宝电脑网站支付

一、沙箱环境 沙箱环境是一个能让开发者快速开发以及联调的辅助环境,开发者只需要登录支付宝开放平台>进入开发服务>设置秘钥,获取APPID、支付宝网关、支付宝公钥、应用私钥就可以进行业务平台支付功能的开发,无需等待正式环境支付应用…

.Net微信电脑网站支付(api v2)

商户或企业前往微信开放平台申请开通微信支付,需要注意的是微信支付功能不对个人用户开放。开通支付功能后,会获取到以下微信支付相关的配置信息: appid:是微信公众账号或开放平台APP的唯一标识,在公众平台申请公众账…

如何让你的网站排名靠前

网站做好了,怎样才能让你的网站在各大搜索引擎中排名靠前呢?网上的帖子很多,通过搜索和总结,整理出了一套自己行之有效的方法,写出来供大家参考 成功案例推荐:http://sooboo.com.cn/ 还在继续整理中&#…

谈谈网站静态化 【转载】

本文转载自: http://blog.csdn.net/yizhu2000/archive/2008/09/01/2863324.aspx 我个人觉得是很好的一个总结 写在前头 静态化是解决减轻网站压力,提高网站访问速度的常用方案,但在强调交互的We2.0 时代,对静态化提出了更高的要求,静态不仅要能静,还要能动,下面我通…

IIS网站服务器性能优化指南

Windows Server自带的互联网信息服务器(Internet Information Server,IIS)是架设网站服务器的常用工具,它是一个既简单而又麻烦的东西,新手都可以使用IIS架设一个像模像样的Web站点来,但配置、优化IIS的性能…

简单网站新闻发布系统

写这篇文章的时候首先要向bben_h 和jdxx表示感谢,是bben_h提出了C#中字符替换这个问题,jdxx很好的解决了这个问题,同时也使我想起以前做的一些程序(简单网站新闻发布系统),现在就把它奉献给大家&#xff0c…

使用SharePoint Workspace 2010同步SharePoint网站

你用什么保存你的文档?U盘、网盘,还是FTP、邮箱(网络存储)?想没有想过,将你的文档“随手”保存在你的网站并且与你的计算机(即使你有多台计算机)随时同步?如果你像我一样…

【web标准设计】学习、提高、欣赏网站推荐

警告文章包含的一些粗俗、庸俗、恶心的言语可能造成您阅读后的不适感,请谨慎选择是否阅读。如你自愿阅读本文,因粗俗、庸俗、恶心的言语给您所造成的任何后果,本文作者不负任何责任。 华丽的中指基础知识的学习 XHTML、CSS、JavaScript的基础…

最新70佳单页网站设计案例欣赏(中篇)

单页网站是指只有一个页面的网站,这种形式的网站曾经非常流行,现在依然有很多人喜欢。不过,并不是每个网站都适合做成单页,一般都是内容比较少而且将来内容也不怎么增加的情况才适合这样做。如果你打算做一个这样的网站&#xff0…

创建自定义主机头网站集

当我们在一个SharePoint Web应用程序中创建新网站集时,虽然我们可以指定网站集的路径,但是网站集的主机头,似乎必须使用Web应用程序所定义的主机头。比如,当在“http://sp2010”这个Web应用程序中创建一个新网站集时,网…

查看痕迹_孩子是否浏览过“不良网站”,看手机留下的3种痕迹,过于明显

孩子是否浏览过“不良网站”,看手机留下的3种痕迹,过于明显!必须要说,智能手机前所未有地改变了现代人的生活方式。伴随着科技创新的持续发展,手机屏幕再也不只是一个承当通信作用的设备,而是变为了集通信、…

html站点初始化设置怎么写,.NET Core Web网站设置默认页index.html

.NET Core Web网站设置默认页index.html。原来IIS可以设置默认静态页面index.html,index.htm等,项目切换到.NET Core后,发现原来一些地址无法打开了,因为这些地址都是到某个文件夹,没有打全index.html。解决办法是在Startup.cs中增…