我有一个带有SVG元素的HTML5页面。我想加载一个SVG文件,从中提取一些元素并用脚本逐个处理它们。
我使用jQuery成功加载SVG文件,使用.load()
,在DOM中插入了SVG树。但是我想尝试svg.js来操作元素,但是在文档中我找不到使用现有SVG元素初始化库的方法,在那里我将得到对象。
想法是访问加载的SVG元素(或直接使用svg.js库加载它),将单个对象复制到另一个元素并将它们移动到我需要的位置。 怎么做?
答案 0 :(得分:15)
给出一个SVG文件' image.svg'含
doLast
和文件' index.html'含
task someTask(type: Sync) {
doLast {
def folder = new File('fold1/fold2/');
if (!folder.exists()) {
throw new GradleException('Folder Absent');
}
else {
}
}
}
然后如果文件' script.js'包含
<svg viewBox="0 0 500 600" version="1.1">
<rect x="100" y="100" width="400" height="200" fill="yellow"
stroke="black" stroke-width="3"/>
</svg>
然后SVG图像将显示并移动鼠标指针 浏览器窗口的颜色将从黄色更改矩形的颜色 蓝色。
您现在应该能够替换任何SVG图像文件并定义任意数量的函数来使用SVG.js库来操作图像。要认识到的重要一点是,如果在$(document).ready函数返回之前发生调用SVG.js方法将无法成功。
对于奖励积分,我还发现复制了&#39; viewBox&#39;,&#39; width&#39;和&#39;身高&#39;在声明&#39; $ tmp&#39;之后添加以下行的属性最适合成功显示任意SVG文件的内容:
<html>
<head>
<script type="text/javascript" src="svg.js"></script>
<script type="text/javascript" src="jquery-X.X.X.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<div id="svgimage"></div>
</body>
</html>
答案 1 :(得分:11)
您应该查看svg.import.js plugin
文件说......
将存储具有id的所有导入元素。所有的对象 存储的元素由导入方法返回:
var rawSvg = '<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg [...]>"';
var draw = SVG('paper');
var store = draw.svg(rawSvg);
store.polygon1238.fill('#f06');
答案 2 :(得分:5)
如果你知道元素的id,你可以在导入raw svg后使用SVG.get方法:
SVG.get('element_id').move(200,200)
图书馆已移至GitHub,文档位于http://svgjs.com/referencing/
<小时/> 旧链接: http://documentup.com/wout/svg.js#referencing-elements