javascript - fabricjs画布内的svg颜色没有改变
问题描述
我正在尝试更改 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].fill = '#000000';
它应该使用这个
svgGroup._objects.forEach(obj => {
if (obj.id == material) {
obj.set('fill', color);
}
});
这样它在调用 renderAll() 时被渲染
推荐阅读
- javascript - FabricJS:绘制时平移画布
- html - Css 将元素数量均匀分布在 2 列中
- abp - ABP/Swashbuckle - 使用 Swashbuckle CLI 生成 swagger 文档
- flutter - 如何实际检查 null 以符合 Dart 中的 Sound null-safety
- python - 我们可以将消息从 Pub/sub 主题拉到 Angular 吗?
- kubernetes - GCP - 我可以将 Compute Engine 用于生产 MySQL 数据库吗
- javascript - 是否可以使用 React '获取'元素样式并将其渲染到 DOM 上?
- javascript - reactjs中使用firebase身份验证的登录功能
- php - 我需要帮助使用 PHP/jQuery/AJAX 获取动态行数的 MySQL 数据
- javascript - 如何仅为 Javascript onclick 回调选择元素的背景空白?