fabricjs画布内的svg颜色没有改变
Posted
技术标签:
【中文标题】fabricjs画布内的svg颜色没有改变【英文标题】:svg color inside fabricjs canvas not changing 【发布时间】:2021-11-14 23:20:49 【问题描述】:我正在尝试更改 fabricjs 画布内的 svg 路径填充。
使用此功能
function changeColor(material)
console.log(svgGroup[0].fill)
console.log(material);
if (material == 'base')
svgGroup[0].fill = '#000000';
console.log(svgGroup[0].fill)
texture.needsUpdate = true;
object.children[0].material = textureMaterial;
canvas.renderAll();
但它不会自动更新
有人知道为什么吗?任何想法都会有所帮助
【问题讨论】:
svgGroup[0] 包含什么?你介意分享 svg 吗? 其实我只是发现了问题,问题是我没有正确设置颜色。我应该使用.set('fill', color)
这样在调用renderAll()
时呈现它
【参考方案1】:
我找到了解决方案,问题是我没有正确设置颜色。而不是这样做
svgGroup[0].fill = '#000000';
应该用这个
svgGroup._objects.forEach(obj =>
if (obj.id == material)
obj.set('fill', color);
);
调用 renderAll() 时的渲染方式
【讨论】:
以上是关于fabricjs画布内的svg颜色没有改变的主要内容,如果未能解决你的问题,请参考以下文章