D3使用图案用图像填充形状
D3 fill shape with image using pattern
我正试图用D3.js创建一个圆形化身,但我无法将我的图像显示在我的圆圈中。我正在使用svg模式def来尝试用图像填充圆圈。
下面有人能告诉我我做错了什么吗?非常感谢。
var config = {
"avatar_size" : 48
}
var body = d3.select("body");
var svg = body.append("svg")
.attr("width", 500)
.attr("height", 500);
var defs = svg.append('svg:defs');
defs.append("svg:pattern")
.attr("id", "grump_avatar")
.attr("width", config.avatar_size)
.attr("height", config.avatar_size)
.attr("patternUnits", "userSpaceOnUse")
.append("svg:image")
.attr("xlink:href", 'images/avatars/avatar_grumpy.png')
.attr("width", config.avatar_size)
.attr("height", config.avatar_size)
.attr("x", 0)
.attr("y", 0);
var circle = svg.append("circle")
.attr("cx", config.avatar_size)
.attr("cy", config.avatar_size)
.attr("r", config.avatar_size)
.style("fill", "#fff")
.style("fill", "#grump_avatar");
"填充";是样式属性,则必须使用CSS url()
表示法来引用模式元素。
一旦你解决了这个问题,你会发现你的尺寸也有问题——除非你的意图是在圆圈里平铺四个化身副本!
附言:我通常会把它作为一个评论,并把它标记为一个简单的打字错误来结束,但我想试试Stack Snippets:
var config = {
"avatar_size" : 48
}
var body = d3.select("body");
var svg = body.append("svg")
.attr("width", 500)
.attr("height", 500);
var defs = svg.append('svg:defs');
defs.append("svg:pattern")
.attr("id", "grump_avatar")
.attr("width", config.avatar_size)
.attr("height", config.avatar_size)
.attr("patternUnits", "userSpaceOnUse")
.append("svg:image")
.attr("xlink:href", 'http://placekitten.com/g/48/48')
.attr("width", config.avatar_size)
.attr("height", config.avatar_size)
.attr("x", 0)
.attr("y", 0);
var circle = svg.append("circle")
.attr("cx", config.avatar_size/2)
.attr("cy", config.avatar_size/2)
.attr("r", config.avatar_size/2)
.style("fill", "#fff")
.style("fill", "url(#grump_avatar)");
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
相关文章:
- 用图像而不是颜色填充对象(将图像绘制到画布上)
- 如何在d3.js中填充svg圆圈内的图像
- 如何将整个html页面转换为带有填充控件的图像
- 如何使用fabricjs在图像中插入填充颜色
- 设置图像以使用纸张.js填充画布
- Chrome通过自动填充隐藏背景图像
- jQuery统计背景图像的纵横比并更改元素的填充值
- PHP:用颜色填充图像块并保存信息
- 用于在网页上填充图像链接的 JavaScript 代码
- 用HTML和js中的按钮填充图像或矢量路径
- KineticJS -图案和填充图像
- 用ng-flow.js从json中填充图像文件
- 填充图像与其他图像javascript/html5
- 在JS中使用共享类动态地按顺序填充图像
- 设置一个 for 循环来填充图像源
- 回发问题后填充图像
- 在 ajax 调用后,使用新数据重新填充图像选取器选择控件
- 使用JavaScript填充图像(不拉伸)
- 强制布局节点填充图像
- 动态JS:将填充图像应用于多边形形状时,使其褪色