使用拉斐尔在svg中创建一个模式元素
Creating a pattern element in svg using raphael
我在svg中有一些模式应用于我的rect,代码如下
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" style="position:absolute; top:0px; left:0px">
<defs>
<rect id="unitsqr" fill="#DBDBDB" stroke="white" stroke-width="1px" x="0" y="0" width="12" height="12"/>
<pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse">
<use xlink:href="#unitsqr" />
</pattern>
</defs>
<rect fill="url(#grid)" x="0" y="0" width="100%" height="100%"/>
</svg>
我想在拉斐尔中做一些动画,但也保留我的网格,我不知道如何在拉斐尔中创建图案,并在以后将其用作填充。有办法做到这一点吗?
当您执行Element.attr("fill", "http://example.com/example.png")
时,Raphaël会创建一个<pattern>元素,如果使用SVG后端的话。但是在Raphaël中没有用于创建和操作模式填充的高级API支持。因此,您要么需要扩展Raphaël,要么可以使用纯js来实现,假设您不关心IE8及更低版本的VML回退。
正确的语法应该是
Element.attr("fill" , "url(http://exmaple.com/example.png)") ;
通过使用Raphael.path或Raphael.circle创建元素并将填充设置为url,您可以轻松地完成一些有趣的事情,比如填充创建一个圆形或路径形状的图像。
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 表追加而不附加最后一个元素
- 滚动到容器中的下一个元素-几乎到了
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript获取上一个元素的内容
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 在数组中的一个元素上设置多个值
- 无法选择除一个元素外的所有元素
- 使用jquery contains获取一个元素并添加类
- $(.class).empty总是缺少一个元素
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- 如何在一个元素动画之后延迟
- jQuery转盘下一个元素没有滑入
- jquery从另一个元素中移除移除
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- 使用数据属性将HTML数据复制到另一个元素
- 如何选择给定类的上一个元素
- 动态修改一个元素,使其与给定的选择器匹配