`
toplchx
  • 浏览: 340938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTML5学习笔记(二)-Canvas、SVG

阅读更多

Canvas与SVG(Scalable Vector Graphics)的区别:

  • Canvas是一个位图画布,其上绘制的图形不可缩放;SVG是矢量图可以放大缩小。
  • Canvas绘制出的对象不属于页面DOM结构或者任何命名空间;SVG支持单机检测(能检测鼠标单机了图像上哪个对象)
  • Canvas不需要存储图像中的对象所以性能非常好。

一、Canvas

1、元素:<canvas></canvas>

 

2、坐标:左上角坐标为原点,即x=0,y=0的点。

 

3、替代内容。

      在不支持canvas的浏览器上需要显示提示或替代内容。如:

<canvas>
    Update your browser to enjoy canvas
</canvas>

 

 4、检测浏览器支持情况

try {
    document.createElement("canvas").getContext("2d");
    document.getElementById("support").innerHTML = 
        "HTML5 Canvas is supported in your browser.";
} catch(e) {
    document.getElementById("support").innerHTML = 
        "HTML5 Canvas is not supported in your browser.";
}

 

 5、划线

<canvas id="diagonal" style="border:1px solid;" width="200" height="200"></canvas>

 

<script>
	function drawDiagonal() {
		//取得canvas元素及其绘图上下文
		var canvas = document.getElementById('diagonal');
		var context = canvas.getContext('2d');
		
		//用绝对坐标来创建一条路径
		context.beginPath();
		context.moveTo(70,140);
		context.lineTo(140, 70);
		
		//将这条线绘制在canvas上
		context.stroke();
	}
	window.addEventListener("load", drawDiagonal, true);
</script>

 一段简单的代码展示了HTML5 Canvas API的重要流程。

首先获取canvas对象的访问权,接着获取canvas二维上下文。

接下来调用3个方法beginPath、moveTo、lineTo传入线的起点和终点坐标。

方法moveTo和lineTo实际上并不画线,在结束canvas操作的时候,通过context.stroke()方法完成线的绘制。

 

6、变换

context.translate(x, y);

将图平移到x,y坐标处。

canvas绘图一般都从0,0点开始,然后平移到应在的位置。因为canvas的缩放、平移、旋转等操作都是已原点为基准点。

绘制前先context.save()保存当前绘图状态,最后再context.restore()恢复原有绘图状态。这样本次绘制所做的缩放旋转就不会影响下次绘制的内容了。

 

7、路径

moveTo(x, y):不绘制,只是移动到目标坐标x,y。

lineTo(x, y):不仅移动到新坐标x,y,而且在两坐标间画一条直线。

 

8、其他操作

canvas画图可以写一本书,并且确实有很多相关方面的书。这里就不详细记录了。本书后面介绍了一些画线样式、填充区域、绘制曲线、插入图片、渐变、旋转、插入文本、阴影等效果操作。

 

9、像素数据

Canvas API最有用的特性之一是允许开发人员直接访问canvas底层像素数据,这种访问是双向的。

获取像素数据:

conext.getImageData(sx, sy, sw, sh) 这个函数返回当前canvas状态并以数值数组的方式显示。

将图像数据应用于canvas:

context.putImageData(imagedata, dx, dy) dx,dy为偏移量。

创建空图像数据:context.createImagedData(sw, sh)

还有一种将图像数据转成文本格式的方法:canvas.toDataURL(type)

传入开发者期望的由canvas数据生成的图像类型为参数,如:image/png或image/jpeg

 

10、Canvas安全机制

如果canvas中的图像来自其他域,就会抛出安全异常。

 

11、进阶功能之全页玻璃窗

可以将canvas应用于这个浏览器窗口或者其中一部分上——这种技术通常被称作“玻璃窗”。一个应用是获取页面中所有DOM元素的绝对位置后,创建循序渐进的帮助功能,从而引导Web应用的用户,一步一步地教他们学会操作。因为canvas会阻塞后续的时间访问。

 

二、SVG

SVG内容就是一段定义严格的XML代码。其中的元素可以被js访问,文本可以被选中(canvas中的不行,因为他们是图形)。也有一些旋转、渐变的效果操作。

SVG长期以来都是矢量图形的标准格式,所以在图像处理方面有很多工具可以使用。比如开源的svg-edit(https://code.google.com/p/svg-edit/)

分享到:
评论

相关推荐

    bootstrap学习笔记-html5

    这个“bootstrap学习笔记-html5”压缩包文件显然包含了有关如何使用Bootstrap和HTML5进行网页设计的资料,非常适合初学者入门。接下来,我们将深入探讨这两个重要主题。 HTML5(超文本标记语言第五版)是网页开发的...

    《HTML5 Canvas学习笔记(10)》数钱数到手抽筋

    这篇名为“HTML5 Canvas学习笔记(10) - 数钱数到手抽筋”的博客文章,很可能是讲解如何使用Canvas来模拟数钱动画或游戏的教程。在Canvas中实现这样的功能,需要掌握以下几个关键知识点: 1. **Canvas基本概念**:...

    HTML5学习笔记(总结提炼版)——001

    本学习笔记将聚焦于HTML5的基础知识,包括其新特性、元素和最佳实践。 一、HTML5的新特性 1. 语义化标签:HTML5引入了新的语义化标签,如、、、和等,这些标签有助于更好地组织内容,提高可读性和可访问性。 2. ...

    HTML5学习笔记

    这篇学习笔记将深入探讨HTML5的核心特性、新元素、API接口以及如何利用它们来构建现代网页。 一、HTML5的新特性与改进 1. 结构化元素:HTML5引入了如、、、、和等新元素,这些元素有助于更好地组织页面结构,提高...

    新手html学习笔记(仅供菜鸟成长参考).rar

    HTML5引入了许多新的元素和功能,如离线存储、拖放功能、音频/视频支持、画布元素(`&lt;canvas&gt;`)、SVG图形、Geolocation定位等,极大地丰富了网页开发的可能性。 六、学习HTML的方法 1. 理解基础概念:从基本结构和...

    HTML5-学习笔记.pdf

    HTML5提供了离线存储、拖放功能、媒体元素、画布(Canvas)和SVG等高级特性,极大地丰富了Web应用的交互体验。 HTML5+CSS3的组合不仅提高了页面的视觉表现,还通过CSS3的新选择器、过渡、动画和3D变换等功能,让...

    Essential Guide to HTML5学习笔记

    本篇笔记将深入探讨HTML5的基础知识,帮助初学者快速入门。 一、HTML5概述 HTML5(超文本标记语言第五版)旨在提高互操作性和用户体验,它对浏览器的兼容性进行了优化,减少了对插件的需求,并引入了离线存储、拖放...

    js+html5 svg创建点路径生成器工具代码.zip

    HTML5是超文本标记语言的第五个版本,它引入了许多新特性,如离线存储、拖放功能、媒体元素、 canvas 和 SVG 支持等。SVG是一种基于XML的矢量图像格式,它能够无损地缩放,且文件大小小,适合用于网页上的图标、图表...

    HTML5分段式SVG文字动画特效.zip

    2. HTML5 Canvas vs SVG:虽然HTML5还提供了Canvas API,用于绘制动态2D图形,但SVG更适合于创建复杂形状和文字的动画,因为它提供了对图形的直接操作能力,而Canvas则更像一个画布,需要通过编程方式逐像素绘制。...

    html5在移动领域开发学习笔记(ppt版)

    HTML5是下一代网页标准,它的...通过学习这个HTML5在移动领域开发的学习笔记,你可以深入了解这些技术,结合实际案例进行练习,从而成为一名熟练的HTML5移动应用开发者。记住,不断实践和探索是掌握新技术的最佳途径。

    韩顺平 HTML5培训笔记

    韩顺平老师的HTML5培训笔记深入浅出地讲解了这一技术,帮助学习者掌握最新的网页制作技能。 在韩顺平老师的课程中,首先会讲解HTML5的基础结构,包括DOCTYPE声明、语义化元素如、、、、和等,这些元素使得网页内容...

    HTML5 SVG万圣节拼图特效.zip

    此外,HTML5的Canvas和SVG是两种不同的图形绘制方式,SVG更适合于创建和编辑图形,而Canvas更适合动态渲染和动画。 CSS特效在此特效中可能涉及到变换(transform)、过渡(transition)和动画(animation),这些...

    HTML5 Canvas虚幻扭曲背景特效.zip

    HTML5 Canvas是一个二维绘图API,通过JavaScript进行操作。它提供了丰富的绘图方法,如`fillRect()`(填充矩形)、`beginPath()`(开始路径)、`moveTo()`(移动到指定点)、`lineTo()`(画线到指定点)等,使得在...

    HTML5 SVG卡通404特效.zip

    此外,HTML5还增强了离线存储(离线Web应用程序)、拖放功能、媒体元素(音频和视频)以及新的API,如Canvas和SVG,使得开发者能够创建更丰富的用户体验。 2. SVG(可缩放矢量图形):SVG是一种基于XML的矢量图像...

    HTML5 SVG微场景动画特效.zip

    对于动画,HTML5提供了`&lt;canvas&gt;`元素和`&lt;svg&gt;`元素,两者都可以用于创建动态效果。 2. **SVG**: SVG是一种基于XML的矢量图像格式,它可以无损地缩放,而且文件大小小,加载速度快。在SVG中,可以通过路径、形状、...

    HTML5 SVG记忆小游戏代码.zip

    HTML5和SVG是现代网页开发中的重要技术,它们在创建交互式、动态和图形丰富的网页内容方面发挥着关键作用。这个"HTML5 SVG记忆小游戏代码.zip"文件很可能包含了一个使用这两种技术实现的记忆翻牌游戏的源代码。让...

    HTML5 SVG网络云结构图标特效.zip

    HTML5是超文本标记语言(HyperText Markup Language)的第五个版本,它引入了许多新特性,如离线存储、拖放功能、媒体元素、 canvas 和 svg 元素等。在本案例中,HTML5被用来构建网页的基础结构,同时提供了与SVG...

    HTML5+SVG实现好玩的打击乐器代码.zip

    总的来说,这个压缩包提供了一个很好的学习实例,展示了HTML5和SVG如何结合使用来创建动态、互动的网页应用。对于想要提升前端开发技能,特别是对HTML5和SVG感兴趣的开发者来说,这是一个非常实用的资源,不仅可以...

    HTML5 Canvas水里数字时钟特效.zip

    HTML5 Canvas是一个强大的Web绘图工具,允许开发者在网页上直接绘制图形,创建丰富的动态视觉效果。这个"HTML5 Canvas水里数字时钟特效.zip"文件显然包含了一个使用Canvas元素制作的、具有水波纹效果的数字时钟特效...

    HTML5 SVG分类下拉菜单选择特效.zip

    HTML5和SVG是现代网页开发中的重要技术,它们在创建交互式、动态和美观的用户界面方面发挥着关键作用。本资源"HTML5 SVG分类下拉菜单选择特效.zip"提供了一个利用HTML5和SVG实现的分类下拉菜单的特效代码,非常适合...

Global site tag (gtag.js) - Google Analytics