`
chengzhi
  • 浏览: 112246 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

svg DOM的一些js操作

 
阅读更多

这是第一个实例,其中讲了如何新建svg,添加元素,保存svg document,查看svg.

下面将附上常用一些元素的添加方法:(为js的,但基本上跟java中操作一样,就是类名有点细微差别)

Circle

var svgns = "http://www.w3.org/2000/svg";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    var shape = svgDocument.createElementNS(svgns, "circle");

    shape.setAttributeNS(null, "cx", 25);

    shape.setAttributeNS(null, "cy", 25);

    shape.setAttributeNS(null, "r",  20);

    shape.setAttributeNS(null, "fill", "green");

 

    svgDocument.documentElement.appendChild(shape);

}

Ellipse

var svgns = "http://www.w3.org/2000/svg";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    var shape = svgDocument.createElementNS(svgns, "ellipse");

    shape.setAttributeNS(null, "cx", 25);

    shape.setAttributeNS(null, "cy", 25);

    shape.setAttributeNS(null, "rx", 20);

    shape.setAttributeNS(null, "ry", 10);

    shape.setAttributeNS(null, "fill", "green");

 

    svgDocument.documentElement.appendChild(shape);

}

Line

var svgns = "http://www.w3.org/2000/svg";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    var shape = svgDocument.createElementNS(svgns, "line");

    shape.setAttributeNS(null, "x1", 5);

    shape.setAttributeNS(null, "y1", 5);

    shape.setAttributeNS(null, "x2", 45);

    shape.setAttributeNS(null, "y2", 45);

    shape.setAttributeNS(null, "stroke", "green");

 

    svgDocument.documentElement.appendChild(shape);

}

Path

var svgns = "http://www.w3.org/2000/svg";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    var shape = svgDocument.createElementNS(svgns, "path");

    shape.setAttributeNS(null, "d", "M5,5 C5,45 45,45 45,5");

    shape.setAttributeNS(null, "fill", "none");

    shape.setAttributeNS(null, "stroke", "green");

 

    svgDocument.documentElement.appendChild(shape);

}

Polygon

var svgns = "http://www.w3.org/2000/svg";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    shape = svgDocument.createElementNS(svgns, "polygon");

    shape.setAttributeNS(null, "points", "5,5 45,45 5,45 45,5");

    shape.setAttributeNS(null, "fill", "none");

    shape.setAttributeNS(null, "stroke", "green");

 

    svgDocument.documentElement.appendChild(shape);

}

Polyline

var svgns = "http://www.w3.org/2000/svg";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    shape = svgDocument.createElementNS(svgns, "polyline");

    shape.setAttributeNS(null, "points", "5,5 45,45 5,45 45,5");

    shape.setAttributeNS(null, "fill", "none");

    shape.setAttributeNS(null, "stroke", "green");

 

    svgDocument.documentElement.appendChild(shape);

}

Rectangle

var svgns = "http://www.w3.org/2000/svg";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    var shape = svgDocument.createElementNS(svgns, "rect");

    shape.setAttributeNS(null, "x", 5);

    shape.setAttributeNS(null, "y", 5);

    shape.setAttributeNS(null, "width",  40);

    shape.setAttributeNS(null, "height", 40);

    shape.setAttributeNS(null, "fill", "green");

 

    svgDocument.documentElement.appendChild(shape);

}

Rounded Rectangle

var svgns = "http://www.w3.org/2000/svg";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    var shape = svgDocument.createElementNS(svgns, "rect");

    shape.setAttributeNS(null, "x", 5);

    shape.setAttributeNS(null, "y", 5);

    shape.setAttributeNS(null, "rx", 5);

    shape.setAttributeNS(null, "ry", 5);

    shape.setAttributeNS(null, "width",  40);

    shape.setAttributeNS(null, "height", 40);

    shape.setAttributeNS(null, "fill", "green");

 

    svgDocument.documentElement.appendChild(shape);

}

Use

var svgns   = "http://www.w3.org/2000/svg";

var xlinkns = "http://www.w3.org/1999/xlink";

 

function makeShape(evt) {

    if ( window.svgDocument == null )

        svgDocument = evt.target.ownerDocument;

 

    var svgRoot = svgDocument.documentElement;

 

    var defs = svgDocument.createElementNS(svgns, "defs");

 

    var rect = svgDocument.createElementNS(svgns, "rect");

    rect.setAttributeNS(null, "id", "rect");

    rect.setAttributeNS(null, "width", 15);

    rect.setAttributeNS(null, "height", 15);

    rect.setAttributeNS(null, "style", "fill: green");

 

    defs.appendChild(rect);

 

    var use1 = svgDocument.createElementNS(svgns, "use");

    use1.setAttributeNS(null, "x", 5);

    use1.setAttributeNS(null, "y", 5);

    use1.setAttributeNS(xlinkns, "xlink:href", "#rect");

 

    use2 = svgDocument.createElementNS(svgns, "use");

    use2.setAttributeNS(null, "x", 30);

    use2.setAttributeNS(null, "y", 30);

    use2.setAttributeNS(xlinkns, "xlink:href", "#rect");

 

    svgRoot.appendChild(defs);

    svgRoot.appendChild(use1);

    svgRoot.appendChild(use2);

}

分享到:
评论
2 楼 tuposky 2014-08-18  
请教楼主,怎么在line 或 Circle 里面加一个title
1 楼 tuposky 2014-08-18  
good...真全

相关推荐

    svgdom:简单明了的DOM实现,使SVG.js在Node.js上无头运行

    npm install svg.js svgdom // returns a window with a document and an svg root node const { createSVGWindow } = require ( 'svgdom' ) const window = createSVGWindow ( ) const SVG = r

    svg通用操作javascript

    压缩包中的`tbusi.js`、`tmap.js`、`tevent.js`、`tdom.js`、`trule.js`、`tutil.js`、`tconstant.js`、`tsvg.js`可能包含了一些自定义的SVG操作函数,比如辅助计算、事件处理封装、常量定义等,这些可以帮助简化和...

    svg.js.zip_8svg.con_flex_javascript SVG_svg_svg.js

    SVG.js是一个轻量级、模块化的JavaScript库,它为开发者提供了便利的方式来操作和绘制SVG图形。这个名为"svg.js.zip_8svg.con_flex_javascript SVG_svg_svg.js"的压缩包,结合描述中的"Trabajar con svg en Flex",...

    javascript实现svg导出图片

    JavaScript作为浏览器端的主要编程语言,提供了丰富的API和库来操作SVG和实现导出功能。下面我们将深入探讨如何使用JavaScript实现SVG导出为图片。 首先,我们需要了解SVG的基本结构和属性。SVG是基于XML的,这意味...

    SVG与html的交互(svg的js与html的js互调用).pdf

    我们使用了 JavaScript 语言的 DOM 模型来访问和操作 HTML 文件和 SVG 文件的元素。我们还使用了 JavaScript 语言的事件模型来处理用户的交互事件,例如单击事件。 最后,让我们来总结一下 SVG 和 HTML 之间的交互...

    js操作svg实例

    在网页开发中,JavaScript(简称JS)是一种广泛使用的脚本语言,它允许我们在客户端动态地操作网页内容。SVG(Scalable Vector Graphics)则是一种基于XML的矢量图像格式,可提供高质量、可缩放的图形。将JS与SVG...

    gulp-svg2el:从 SVG 图像文件中提取 SVG DOM 元素

    gulp-svg2el Gulp 插件将传递的 HTML 转换为 Javascript $ npm install gulp-...该插件会转义源 HTML 中的所有相关字符,将制表符/空格折叠为单个空格并修剪结果以输出有效的 SVG DOM 元素。 ,由编写,用于项目 。

    svg与js交互

    SVG元素是文档对象模型(DOM)的一部分,可以通过JavaScript直接访问和操作。每个SVG元素都有对应的DOM接口,例如`SVGSVGElement`接口代表SVG根元素。SVG文档中可以包含HTML和JavaScript代码,如`<script>`标签,...

    svg经典教材实例

    - SVG DOM是SVG图形的结构化表示,允许通过JavaScript进行操作。例如,通过`evt.target`和`evt.target.getOwnerDocument()`等属性和方法可以获取事件源和SVG文档对象。 - `evt`属性:在事件处理函数中,`evt`对象...

    dom-to-svg:用于将给定HTML DOM节点转换为可访问的SVG“屏幕截图”的库

    DOM到SVG 用于将给定HTML DOM节点转换为可访问的SVG“屏幕截图”的库。 演示版 :camera_with_flash: 试用,该使用此库可让您获取任何网页的SVG屏幕截图。 您可以在找到源代码。 用法 import { documentToSVG , ...

    svg.js和jquery实现连线功能

    SVG.js是一个轻量级的JavaScript库,专为操作SVG图形而设计。它可以轻松地创建、修改、动画化SVG元素,非常适合用于构建动态用户界面和数据可视化应用。 jQuery则是一个广泛使用的JavaScript库,它简化了DOM操作、...

    基于JavaScript和SVG的WebGIS实现方案.pdf

    第二部分是使用JavaScript操作SVG DOM对象来构建WebGIS系统,包括使用JavaScript操作SVG DOM对象、实现基本GIS功能等。 该方案旨在解决传统WebGIS实现方案中存在的性能问题,提供了一种轻量级的WebGIS解决方案。该...

    使用脚本动态操作 SVG 文档

    SVG浏览器对ECMAScript的支持程度各不相同,一些特定的浏览器可能提供了额外的API或扩展,以便更好地进行SVG操作。例如,Firefox和Chrome提供了`SVGSVGElement`接口,可以用来获取SVG根元素并进行操作。同时,对于...

    使用HTML5canvas和svg从DOM节点生成可打印的分页pdf

    总的来说,使用HTML5的canvas和SVG结合JavaScript库,可以从DOM节点生成可打印的分页PDF,这一过程涉及DOM操作、图形转换、布局计算和PDF生成等多个环节。通过熟练掌握这些技术,开发者可以为用户提供更加灵活和强大...

    snap.svg 中文参考手册 离线php版

    同时,它尽可能减少了对SVG DOM的直接操作,提高了性能。 9. **插件系统**:Snap.svg有丰富的插件生态系统,可以扩展其功能,例如添加物理模拟、图表绘制等高级特性。 10. **学习资源**:除了这个中文参考手册,...

    js操作svg图片的缩放 (2).zip

    3. **JavaScript API**: DOM API允许JavaScript直接操作SVG元素。可以使用`document.getElementById`或`document.querySelector`来获取SVG元素,然后修改其属性。例如,`element.setAttribute('width', 'newWidth')`...

    vue动态渲染svg、添加点击事件的实现

    4. **动态修改SVG内容**:在获取SVG DOM之后,我们可以使用JavaScript操作DOM的API来修改SVG内容,如更改样式、属性等。 ### 为SVG添加点击事件 为SVG图形添加点击事件是为了实现与用户的交互。在Vue中实现这一点...

    svg雷达图效果,js技术

    SVG雷达图效果是一种在网页上展示数据的有效方式,它利用了Scalable Vector Graphics(SVG)和JavaScript(JS)技术来创建交互式、可定制化的图表。SVG是一种基于XML的矢量图形格式,允许在Web浏览器中直接绘制图形...

Global site tag (gtag.js) - Google Analytics