HTML5技术

HTML5 基础 - 彼岸时光(6)

字号+ 作者:H5之家 来源:H5之家 2016-03-08 17:00 我要评论( )

由于 SVG 是基于 XML 的, 因而能制作出空前强大的动态交互图像,即 SVG 图像能对用户动作做出不同响应,例如高亮、声效、特效、动画等。作为 SVG 技术的一个应用,SVG 在手机等无线手持设备上的应用将是 3G 时代最

  由于 SVG 是基于 XML 的, 因而能制作出空前强大的动态交互图像,即 SVG 图像能对用户动作做出不同响应,例如高亮、声效、特效、动画等。作为 SVG 技术的一个应用,SVG 在手机等无线手持设备上的应用将是 3G 时代最重要的应用之一。支持 SVG 的手机,允许用户查看高质量的矢量图形及动画,同时,由于 SVG 采用文本传输,尺寸也会非常小,速度将会更快。

  SVG 的主要竞争者是 Flash。与 Flash 相比,SVG 最大的优势是与其他标准(比如 XSL 和 DOM)相兼容,而 Flash 则是未开源的私有技术。

  目前 IE9+,Firefox,Chrome,Safari 和 Opera 都支持内联 SVG,IE8 及其更早版本都需要安装一个插件,比如 Adobe SVG Viewer,插件是免费提供的。

  (3)、SVG 文件

  SVG 是 XML 文件,可用任何文本编辑器创建。

  下面是一个简单的 SVG 文件例子,SVG 文件必须使用 .svg 后缀来保存:

  代码解析:

  第一行包含了 XML 声明。请注意 standalone 属性!该属性规定此 SVG 文件是否是“独立的”,或含有对外部文件的引用。standalone="no" 意味着 SVG 文档会引用一个外部文件 - 在这里,是 DTD 文件。

  第二行引用了这个外部的 SVG DTD。该 DTD 位于 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"。该 DTD 位于 W3C,含有所有允许的 SVG 元素。

  SVG 代码以 <svg> 元素开始,包括开放标签 <svg> 和闭合标签 </svg> ,这是根元素。width 和 height 属性可设置此 SVG 文档的宽度和高度。version 属性可定义所使用的 SVG 版本,xmlns 属性可定义 SVG 命名空间。

  SVG 的 <circle> 用来创建一个圆。cx 和 cy 属性定义圆中心的 x 和 y 坐标,如果忽略这两个属性,那么圆点会被设置为 (0, 0)。r 属性定义圆的半径。stroke 和 stroke-width 属性控制如何显示形状的轮廓,上面文件中圆的轮廓设置为 2px 宽,黑边框。fill 属性设置形状内的颜色,文件中填充颜色为红色。

  最后一行,关闭标签的作用是关闭 SVG 元素和文档本身。注意:所有的开始标签必须有结束标签。

  (5)、HTML 创建 SVG

  SVG 文件可通过以下标签嵌入 HTML 文档:<embed>、<object> 或者 <iframe>。

  ①、使用 <embed> 标签

  <embed> 标签被所有主流的浏览器支持,并允许使用脚本。<embed> 标签是 HTML5 新添加的标签,所有只有 HTML5 支持,在 HTML4 和 XHTML 中不支持。

  语法:

  ②、使用 <object> 标签

  <object> 标签是 HTML 4 的标准标签,HTML5 也支持,所有主流浏览器都支持,它的缺点是不允许使用脚本。

  语法:

  ③、使用 <iframe> 标签

  所有主要浏览器都支持 <iframe>,并允许使用脚本,但只在 HTML5 中被允许,在 HTML4 中 XHTML 不支持。

  语法:

  ④、HTML 嵌入 SVG 代码

  IE9+、Chrome、Firefox 和 Safari 中,可以直接在 HTML 代码中嵌入 SVG 代码。目前 Opera 不支持 SVG 嵌入 HTML。

  在 HTML5 中,可以把 SVG 元素直接嵌入 HTML 页面中:

SVG

 上面的例子,在页面中创建一个多边形,在 Chrome 中显示如下:

  SVG 的 <polygon> 标签可以用来创建含有不少于三个边的图形。多边形由直线组成,其形状是"封闭"的,即所有的线条连接起来。points 属性的每组值用于定义多边形每个角的 x 和 y 坐标。在 style 属性中可规定创建图像的样式,fill 属性规定填充的颜色,stroke 和 stroke-width 属性控制如何显示形状的轮廓,例子中为 2px 宽,黑边框。fill-rule 属性可以设置图形的内部区域。使用 fill-opacity 属性还可以设置填充颜色的透明度,该属性和 CSS 的 opacity 属性相同。

  ⑤、SVG 添加超链接

  使用 a 元素可以为创建的 SVG 图形添加链接:

SVG 添加超链接Click meClick me

  上面的例子,SVG 的 <rect> 标签可用于定义矩形,<text> 标签用于定义文本。注意:给 SVG 添加超链接,在 a 元素中一定要使用 xlink:href 属性,该属性是 XML 中的属性,用于指定要链接的 URL。

  (6)、SVG 与 Canvas

  Canvas 和 SVG 都可以在浏览器中创建图形,但是它们在根本上是不同的。

  他们的区别在于:

    SVG 是一种使用 XML 描述 2D 图形的语言。

    而 Canvas 是通过 JavaScript 来绘制 2D 图形。

    SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。

    在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

    Canvas 是逐像素进行渲染的。

    在 Canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

  下表列出了 Canvas 与 SVG 之间的一些不同之处:

Canvas SVG

依赖分辨率 不依赖分辨率

不支持事件处理 支持事件处理

弱的文本渲染能力 最适合带有大型渲染区域的应用程序(比如谷歌地图)

能够以 .png 或 .jpg 格式保存结果图像 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)

最适合图像密集型的游戏,其中的许多对象会被频繁重绘 不适合游戏应用

 

5、HTML5 拖放(Drag and Drop)

  拖放是 HTML5 标准的组成部分,任何元素都能够拖放。在代码中 Drag 为拖动,Drop 是拖放。

  拖放是一种常见的特性,即抓取对象以后拖到另一个位置。

  下面是一个简单的拖放例子:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • vue全局配置----小白基础篇 - 星光笔

    vue全局配置----小白基础篇 - 星光笔

    2017-04-28 08:04

  • HTML5 进阶系列:indexedDB 数据库 - _林鑫

    HTML5 进阶系列:indexedDB 数据库 - _林鑫

    2017-04-27 14:02

  • HTML5 高级系列:web Storage - _林鑫

    HTML5 高级系列:web Storage - _林鑫

    2017-04-27 14:01

网友点评
>