【发布时间】:2014-08-21 20:03:48
【问题描述】:
我的目标是使用svg.js 对投资组合中的每个单独图像进行遮罩,以生成图像遮罩。我正在使用 svg.js 和 cargo.collective 主题。
我写了一些 js 来生成 <svg> 标签并单独包装一组图像,这工作正常但是 <img> 标签不会在 <svg></svg> 内呈现
为了解决这个问题,我使用 svg.js 生成一个单独的 <image> 标记。这就是我的问题所在 - 我似乎无法将<img> 中的源转移到svg.js 中创建的新<image> 标签我尽最大努力在<image> href 中返回了[object Object]。
我想让图像在 <svg> 标记内呈现,这样我就可以对它们应用蒙版,而不管容器中实际有什么图像。
HTML
<svg class="thumb_image" id="drawing" xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" xmlns:xlink="http://www.w3.org/1999/xlink">
<image id="SvgjsImage1005" width="0" height="0"></image>
<image class="imgclip" src="http://payload280.cargocollective.com/1/16/516926/7919591/prt_275x242_1403202556_2x.jpg" width="275" height="242" data-hi-res="http://payload280.cargocollective.com/1/16/516926/7919591/prt_275x242_1403202556_2x.jpg"></image>
<defs id="SvgjsDefs1000">
<polygon id="SvgjsPolygon1006" points="0,0 275,50 0,270" fill="#f2f0ce" stroke-width="0"></polygon>
</defs>
</svg>
【问题讨论】:
-
请制作一个 jsFiddle,以便我们更好地理解问题。据我了解,您的页面上将有一个
<img>元素,并且您希望将其转换为 SVG 中的<image>元素。这样做的方法是从图像中获取src,删除<img>元素,然后使用draw.image('/path/to/image.jpg')在SVG 中创建<image>元素。此外,请查看使用 Chrome 调试器来检查您尝试在href中插入的数据,因为这不是字符串。但是从一个小提琴开始来说明你的例子。 -
感谢您的建议,这是我的js fiddle 我必须警告它在代码的再现中有点冒险。我正在使用的模板是一个 handlebars.js 模板,它生成 html 代码我添加了一个屏幕截图来显示它应该是什么样子,而不是我在 jsfiddle 中的样子。话虽如此,代码完全相同,并在我的屏幕截图中实现了结果。再次感谢您的帮助。
-
我打开了小提琴,我不会费心去看它。里面的垃圾太多了。如果您不及时提出合理的问题,您将不会得到任何好的答案。
-
好的,here's 代码更新。我已经删除了所有不相关的信息。
-
我更新了屏幕截图以更好地解释我想要做什么。
标签: javascript jquery loops svg svg.js