【发布时间】:2013-06-21 07:11:21
【问题描述】:
我从http://svg-cards.sourceforge.net/ 下载了一个 svg 文件。它是一副基本的标准扑克牌。它的结构是这样的:
<defs>
<g>
<text></text>
</g>
</defs>
<g>
<g id="king_spade">
<use></use>
</g>
... //50+ more cards
</g>
自述文件说
您可以通过将文件渲染成像素图并剪裁每张卡片或将它们的名称与 DOM 接口一起使用来访问每个卡片
然后给出这个例子:
<g id="king_spade">
...
</g>
好的,很好,我看到了两者之间的关系,但我不明白如何只显示一张卡片,因为所有卡片都在同一个文件中。我所做的任何事情都渲染了整个 svg 文件(所有 55 张卡片!)
这包括:
<img>
<embed>
<object>
所以我的问题:我该如何做自述文件所建议的应该如此简单......如何在不首先显示整个文件的情况下访问组内的各个卡?
真正我正在寻找的几乎是一种像 css 一样使用它的方法。将其作为资源包含在我的脑海中,然后可以在文档的正文中执行 <g id="king_spade"></g> 并让黑桃王出现。我不能这样用吗?
编辑:我试图在 phonegap 应用程序中完成这一切,所以我没有连接到外部服务器。所有资源都将位于手机上,因此由于同源限制,下面的ajax 解决方案不起作用。
【问题讨论】:
-
您是在一个大的
<svg>元素中工作,还是只想在常规HTML 中添加一张卡片(例如,添加到<div>)? -
@EgorNepomnyaschih 我更喜欢第二个选项。
标签: javascript html dom svg cordova