问题:我正在使用 Snap.svg 创建一些基本的交互式图形,但由于某种原因,我无法使用Snap.load()
. 我直接从snap.io的教程中提取代码,并检查并仔细检查了文档。我的 SVG 文件在浏览器中呈现良好,只是没有显示在 Snap SVG 中。其他形状(即未使用 拉入Snap.load()
)会显示。
代码:我已经将我的示例归结为可以想象的最简单的 HTML 和 SVG 文件,但 Snap.load() 方法仍然不适合我。有谁看到我错过了什么?
HTML:
<head>
<style media="screen">
#svg {
width: 300px;
height: 300px;
}
</style>
<script src="snap.svg-min.js"></script>
<meta charset=utf-8 />
</head>
<body>
<svg id="svg"></svg>
<script type="text/javascript">
var s = Snap("#svg");
Snap.load("svgtest.svg");
</script>
</body>
SVG(最初从 Illustrator 导出):
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
<rect x="14" y="33" fill="#2BB673" width="70" height="30"/>
</svg>
更新:根据@Ian 的建议更新了代码 -
var s = Snap("#svg");
Snap.load("http://www.w3.org/TR/SVG/images/struct/Use01.svg", onSVGLoaded ) ;
function onSVGLoaded( data ){
s.append( data );
}
- 但仍然没有显示外部 SVG。我尝试使用来自 w3.org 的 SVG,以确保文件本身或我的域没有问题。