使用RaphaelJS,此命令会插入图像: -
var myImg = paper.image('image.svg', 100, 100, 150,150);
,SVG输出为: -
<image x="100" y="100" width="150" height="150" preserveAspectRatio="none" href="image.svg"/>
问题:如何直接访问preserveAspectRatio
属性并将其更改为xMidYMid meet
- 如果您检查myImg.attr()
,则不会显示此属性。
环形交叉方式是导航SVG DOM树,并执行svgImg.setAttributeNS(null,"preserveAspectRatio" , "xMidYMid meet" );
注意:只有部分图片需要none
,而其他图片需要xMidYMid meet
标记。因此,我无法在父&lt; svg&gt;
注意2:Chrome不支持preserveAspectRatio with SVG images。使用FF或IE进行测试。
答案 0 :(得分:1)
在源代码级别,preserveAspectRatio
被硬编码为none
回答最快捷的方式: - ;
myImg [0] .preserveAspectRatio.baseVal.align = 6(1 =关闭,6 = xMidYMid) myImg [0] .preserveAspectRatio.baseVal.meetOrSlice = 1(1 = meet,2 = slice)
更新: - jQuery样式: -
jQuery(myImg.node).prop('preserveAspectRatio')。baseVal.align = 6; jQuery(myImg.node).prop('preserveAspectRatio')。baseVal.meetOrSlice = 1;
Raphael的Element.node
文档“给你一个DOM对象的引用,所以你可以分配事件处理程序或者只是乱七八糟。注意:不要乱用它。” < / p>
答案 1 :(得分:0)
您可以在整个Raphael画布上调用这些参数。
首先创建SVG: var paper = Raphael('content',xSize,ySize);
在其中放置图片: paper.image('image.svg',100,100,150,150);
然后更改svg的属性: paper.canvas.setAttribute('preserveAspectRatio','xMidYMid Meet');