使用 JavaScript 创建 SVG 图像

已发表: 2023-01-01

SVG,即可缩放矢量图形,是万维网联盟 (W3C) 于 1999 年创建的 Web 标准。它是一种基于 XML 的矢量图像格式,用于支持交互性和动画的二维图形。 SVG 规范是一种开放标准,自 1999 年以来一直由 W3C 开发。JavaScript 是一种在 Web 上广泛使用的编程语言。 它可用于创建交互式网页,并被许多网络开发人员使用。 JavaScript 可用于创建 SVG 图像。 可以使用JavaScript 库 D3.js创建 SVG 图像。 D3.js 是一个 JavaScript 库,可以轻松创建 SVG 图像。 该库是开源的,可以在 GitHub 上找到。 JavaScript 也可用于在不使用库的情况下创建 SVG 图像。 JavaScript 代码可以在文本编辑器中编写,SVG 图像可以在矢量图形编辑器(如 Adob​​e Illustrator)中创建。

与 HTML 一样,SVG 使用文档对象模型 (DOM) 表示。 由于 Javascript 易于操作,因此操作起来相对简单。 在本课程中,我将演示如何使用内联和外部 SVG。 这篇文章中的代码示例位于此页面的顶部,可通过 Github 链接访问。 您用来将 <script> 元素添加到外部 SVG 的代码也可以使用。 由于 SVG 未嵌入到 HTML 中,因此无法查看页面上的其他 SVG,因此我们可以将其用作技巧。 因此,如果您将代码包装在 CDATA 中,则 XML 解析会将 JS 代码视为 XML 的一部分。

HTML 元素的创建和删除方式与 HTML 元素相同。 要创建元素,请使用文档的 createElementNS() 方法,该方法将传递给SVG 命名空间及其标记名称。 要删除元素,只需在文本元素中放置一个 insertTextNode() 字段。 之所以可行,是因为无法将它们复制并粘贴到同一文档中。

您可以使用脚本和 CSS 更改 SVG。

它比 SVG 具有更大的可访问性优势。 要在 sva 中绘制元素,必须使用脚本。 我们不是来这里为课程中的测验提供答案的。 如果你在测验之前通读了这一页,你应该能够解决它们。

将 img> 元素插入 HTML 页面很简单; 只需像您通常期望的那样在 src 属性中引用元素。 如果您的 SVG 没有固有的纵横比,则必须包含高度或宽度属性。 您必须先将 URL 输入 HTML 浏览器才能查看图像。

许多 Web 浏览器允许您显示 SVG 以及 PNG、GIF 和 JPG。 图形是使用 JavaScript 绘制的,JavaScript 是使用 HTML canvas 元素执行的。 HTML CanvasSVG是一种基于矢量、支持 HTML 的 Canvas,它使用形状。 画布由一个基于光栅的对象组成,画布的每个部分都有三行。

我们可以在 Svg 中使用 Javascript 吗?

我们可以在 Svg 中使用 Javascript 吗?
摄影 – thenewcode

JavaScript 代码可以添加到SVG 文档的开始和结束标记之间的任何位置。 一般来说,建议在文档末尾放置一个脚本,以防止它被阻塞,并赋予脚本对 DOM 的完整访问权限。

现在有一个 .svg 文件格式,允许更动态地缩放图像和数据。 XML(标记)描述了如何绘制和对齐它们,其中 XML 是最常用的方法。 如果将标记放入 HTML 文件中,它将显示为一个图标。 在这种情况下,从远程位置生成的数据可以在生成时或生成后动态转换为SVG 图标。 可以创建 XML 标记并将其集成到 HTML 元素中。 您可以使用 XML 元素来制作 main.js 文件。 只需拖动锚标记即可插入创建的图形,使其适合滚动。

因此,可以像处理任何其他元素一样处理 svg。 样式、类和其他特征可以添加到您的应用程序中。 这些图标已预先添加到每个帖子中,使它们可以轻松用作锚链接以平滑滚动帖子。

Svg 非常适合响应式设计

XML 格式的图像不会随着时间的推移而退化,并且当它们比原始图像大时很容易调整大小。 简单的 CSS 和/或JavaScript 动画可以使用 SVG 轻松操作和动画化。 简而言之,对于响应式设计,SVG 是 JPG、JPEG 和 PNG 的最佳替代品,因为它不会占用太多页面空间。 您可以使用 *svg>*/svg> 标签在 HTML 文档中包含图像。 您可以通过在 Visual Studio 或您首选的 IDE 中打开 SVG 图像并将代码复制并粘贴到 HTML 文档的 body> 元素中来执行此操作。 如果您担心一些问题,您应该避免在 HTML 文档中使用 SVG。 SVG 的第一个缺点是它不支持动画或透明度,因此它可能不是适合所有图像的最佳平台。 此外,由于 SVG 的使用不如 PNG 等更常见的格式广泛,因此它可能与旧的浏览器和设备不兼容。 最后,您可能需要以不同的方式为您的网站上传和显示 SVG 图像。 好消息是,对于不需要动画或透明度的响应式设计和图像,SVG 是一个很好的选择。


svg可以应用css吗?

绝大多数可缩放矢量图形 (SVG) 都基于 CSS,但可以使用某些属性来实现它们。 表示属性可以用作 SVG 元素的 CSS 属性或用作SVG 样式元素。 最重要的属性是仅支持 SVG 的属性,但其他属性(例如大小或不透明度)已在 CSS 中共享。

可以对 CSS 属性和 SVG 元素使用表示属性。 CSS 中可以使用填充属性将元素的颜色更改为红色。 文本、遮罩、过滤和过滤效果是 CSS 和 SVG 共享的一些属性。 某些元素(例如 SVG 元素)并不都支持相同的 CSS 属性。 作为最新版本软件的结果,现在定义了几何属性,例如 rx 和 ry。 几何属性可以在 CSS 中使用,就像填充和描边等表示属性一样。 CSS 可用于将元素转换为形状。

CSS 还可用于指定 >rect 元素的宽度和高度。 元素的形状是使用 d 属性指定的。 单击元素时,使用:active 伪类将形状转换为正方形,单击时转换为元素的填充颜色。 使用 CSS 时,可以使用动画延迟来指定 your.shape 的类。 没有必要立即将这些技术投入生产。

SVG,尽管它很简单,但可以用 CSS 制作动画。 CSS 可用于为 SVG 制作动画,这意味着您可以创建许多漂亮的动画。 尽管如此,市场上还有其他工具可用于更好地处理动画任务。 使用 JavaScript,您可以创建动画。 JavaScript 是一种功能强大的编程语言,在动画方面的表现比 CSS 好得多。 此外,您可以使用 Greensock 和 Animate.js 等工具来创建更高级的动画。

我应该使用 Css 还是 Svg?

尽管 CSS 有一组可用于创建特定效果的过滤器,但 SVG 的内置过滤器用途更广,可以通过吸引人的 UI 创建更复杂的效果。 Gooey Effect 除了是最令人印象深刻的 SVG 滤镜效果之一外,还可以用作滤镜。

Css 中的 Svg 是什么?

术语 SVG是指可缩放矢量图形。 SVG 标准支持为 Web 创建矢量图形。 HTML 的图形以 XML 的 SVG 格式定义。 SVG 文件中的每个元素和属性都可以设置动画。