百科狗-知识改变命运!
--

- 绘制图形 - html5 脚本

乐乐1年前 (2023-11-21)阅读数 20#技术干货
文章标签元素

版本:HTML5

元素可被用来通过脚本(通常是JavaScript)绘制图形。比如,它可以被用来绘制图形,制作图片集合,甚至用来实现动画效果。你可以(也应该)在元素标签内写入可提供替代的的代码内容,这些内容将会在在旧的、不支持元素的浏览器或是禁用了JavaScript的浏览器内渲染并展现。

浏览器支持

IE 9、Firefox、Opera、Chrome 和 Safari 支持标签。
注释:IE 8 或更早版本的 IE 浏览器不支持标签。

示例

 sorry, your browser doesn't support the <canvas> 

element. 

如果你没有设置元素的透明度,可以考虑使用moz-opaque属性。下面给出的示例代码可用于页面渲染优化。但需要您注意的是,这个属性目前还没有被推广开来,只能在基于Mozilla内核的浏览器内生效。

标签定义及使用说明

  • 标签通过脚本(通常是 JavaScript)来绘制图形(比如图表和其他图像)。
  • 标签只是图形容器,您必须使用脚本来绘制图形。
  • 元素中的任何文本将会被显示在不支持的浏览器中。

属性

本元素支持全局属性.

  • height该元素占用空间的高度,以 CSS 像素(px)表示,默认为 150。
  • moz-opaque尚未标准化
    通过设置这个属性,来控制canvas元素是否半透明。如果你不想canvas元素被设置为半透明,使用这个元素将可以优化浏览器绘图性能。
  • width该元素占用空间的宽度,以 CSS 像素(px)表示,默认为 300。

注意事项

需要标签

不同于元素,元素需要有闭合标签().

设置画布(canvas)的大小

可以通过CSS来控制的大小。在渲染的过程中元素中的内容会根据情况缩放来适应需要的大小。如果您发现元素中展示的内容变形,您可以通过自带的height和width属性进行相关设置,而不要使用CSS。

的历史

这个 HTML 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上。

标记由 Apple 在 Safari 1.3 Web 浏览器中引入。对 HTML 的这一根本扩展的原因在于,HTML 在 Safari 中的绘图能力也为 Mac OS X 桌面的 Dashboard 组件所使用,并且 Apple 希望有一种方式在 Dashboard 中支持脚本化的图形。

Firefox 1.5 和 Opera 9 都跟随了 Safari 的引领。这两个浏览器都支持标记。

我们甚至可以在 IE 中使用标记,并在 IE 的 VML 支持的基础上用开源的 JavaScript 代码(由 Google 发起)来构建兼容性的画布。参见:http://excanvas.sourceforge.net/。

的标准化的努力由一个 Web 浏览器厂商的非正式协会在推进,目前已经成为 HTML 5 草案中一个正式的标签。参见:http://www.whatwg.org/specs/web-apps/current-work/

标记和 SVG 以及 VML 之间的差异

标记和 SVG 以及 VML 之间的一个重要的不同是,有一个基于 JavaScript 的绘图 API,而 SVG 和 VML 使用一个 XML 文档来描述绘图。

这两种方式在功能上是等同的,任何一种都可以用另一种来模拟。从表面上看,它们很不相同,可是,每一种都有强项和弱点。例如,SVG 绘图很容易编辑,只要从其描述中移除元素就行。

 - 绘制图形 - html5 脚本

要从同一图形的一个标记中移除元素,往往需要擦掉绘图重新绘制它。

如何使用标记绘图

大多数 Canvas 绘图 API 都没有定义在元素本身上,而是定义在通过画布的getContext()方法获得的一个“绘图环境”对象上。

Canvas API 也使用了路径的表示法。但是,路径由一系列的方法调用来定义,而不是描述为字母和数字的字符串,比如调用 beginPath()和 arc()方法。

一旦定义了路径,其他的方法,如 fill(),都是对此路径操作。绘图环境的各种属性,比如 fillStyle,说明了这些操作如何使用。

注释:Canvas API 非常紧凑的一个原因上它没有对绘制文本提供任何支持。要把文本加入到一个图形,必须要么自己绘制它再用位图图像合并它,或者在上方使用 CSS 定位来覆盖 HTML 文本。

属性

HTML5 中的新属性。

属性描述
height HTML5新增pixels规定画布的高度。
width HTML5新增pixels规定画布的宽度。

HTML 4.01 与 HTML 5 之间的差异

标签是 HTML 5 中的新标签。

全局属性

标签支持HTML 的全局属性。

事件属性

标签支持HTML 的事件属性。

实例

通过元素来显示一个红色的矩形:

var canvas=document.getelementbyid('myCanvas');
var ctx=canvas.getcontext('2d');
ctx.fillstyle='#ff0000';
ctx.fillrect(0,0,80,100);

例子

function drawcanvas()
{
var canvas=document.getelementbyid('myCanvas');
var ctx=canvas.getcontext('2d');
ctx.fillstyle='#ff0000';
ctx.fillrect(0,0,80,100);
}

...



your browser does not support the canvas tag 

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)