当前位置: 首页 > news >正文

北京网站建设公司代理吉林票务通app

北京网站建设公司代理,吉林票务通app,医疗类网站哪家做的好,口碑好的常州做网站本文简介 带尬猴,我嗨德育处主任 不知道你有没有遇到过在使用 Fabric.js 时无意中一些骚操作修改了元素的样式,但刷新画布却没更新元素样式? 如果你也遇到同样的问题的话,可以尝试使用本文的方法。 是否需要重新绘制 我先举个例…

本文简介

带尬猴,我嗨德育处主任


不知道你有没有遇到过在使用 Fabric.js 时无意中一些骚操作修改了元素的样式,但刷新画布却没更新元素样式?

如果你也遇到同样的问题的话,可以尝试使用本文的方法。



是否需要重新绘制

我先举个例子。

file

<canvas id="c" style="border: 1px solid #ccc;"></canvas><script>
let canvas = new fabric.Canvas('c')// 矩形 - 亮粉色
let rect = new fabric.Rect({left: 50,top: 30,width: 80,height: 60,fill: 'hotpink'
})canvas.add(rect)setTimeout(() => {console.log(rect.fill) // 输出 'hotpink'rect.fill = 'red'console.log(rect.fill) // 输出 'red'canvas.renderAll() // 刷新画布
}, 1000)</script>

在这个例子中,页面运行1秒后,我想通过 rect.fill = 'red' 的方式将画布中的矩形修改成红色。

修改完成后在控制台输出当前矩形的颜色,然后再通过 canvas.renderAll() 的方式刷新画布。

从控制台输出的数据来看,矩形确实是变红了,但从视觉上看画布中的矩形却还是粉色。


其实正确的做法是使用 rect.set('fill', 'red') 去修改矩形颜色,set() 方法会通知画布要刷新样式。

但如果你坚持使用 rect.fill = 'red' 的方式去修改也不是不行,此时需要将矩形的 statefullCache 设置为 true,矩形就会自动检测属性的值的更新。


file

// 省略部分代码let rect = new fabric.Rect({left: 50,top: 30,width: 80,height: 60,fill: 'hotpink',statefullCache: true // 自动检测更新
})canvas.add(rect)setTimeout(() => {console.log(rect.fill) // 输出 'hotpink'rect.fill = 'red'console.log(rect.fill) // 输出 'red'canvas.renderAll()
}, 1000)

但并不是所有情况都适合将 statefullCache 设为 true

官方文档也有介绍到:

statefullCache: Boolean

When true, object properties are checked for cache invalidation. In some particular situation you may want this to be disabled ( spray brush, very big, groups) or if your application does not allow you to modify properties for groups child you want to disable it for groups. default to false since 1.7.0


说了这么多,最后我还是推荐通过 set() 方法修改元素的属性。



代码仓库

⭐ 是否需要重新绘制缓存的副本



推荐阅读

👍《Fabric.js 动态设置字号大小》

👍《Fabric.js 监听元素相交(重叠)》

👍《Fabric.js 限制边框宽度缩放》

👍《Fabric.js 保存自定义属性》

👍《Fabric.js 元素被遮挡的部分也可以操作》

👍《Fabric.js 从入门到膨胀》


点赞 + 关注 + 收藏 = 学会了 代码仓库

http://www.yayakq.cn/news/683903/

相关文章:

  • 重庆免费发布信息网站上海网络营销seo
  • 写作网站哪个比较赚钱wordpress自定义文章类型关键词
  • 信用中国门户网站建设方案创意定制
  • 下载软件的网站推荐手机app应用开发公司
  • 成品网站超市源码哪家app软件开发公司好
  • 哪个素材网站比较好用翻译网站平台建设
  • 网站的竞价怎么做免费申请网站 主机 空间
  • 营销型网站的标准陕西省住房建设部官方网站一建
  • 商城微网站模板免费网站整站模板下载
  • 嵊州网站制作品牌建设标准
  • 电子商务网站规划 分析 设计小程序怎么引流推广
  • wordpress 做大型网站容桂品牌网站建设优惠
  • 自己做服务器的网站吗wordpress 报表图形
  • 做网站建设给人销售网站子网页怎么做
  • 设计教程网站做网站前台后台是怎么连接的
  • 海城网站制作建设贵阳制作网站
  • 天津建设银行网站wordpress任意文件删除漏洞
  • 链接购买seo搜索引擎优化技术
  • 全屏家居网站模板网站建设找推推蛙
  • 医疗网站建设行业现状做视频网站带宽不够怎么办
  • 免费网站服务器手机端的网站怎么做
  • 中学生设计的网站自己找厂家做代理卖货
  • 淘宝客自己做网站吗湖州建设公司网站
  • 网站页面设计考虑要素如皋做网站公司
  • 青岛 两学一做 网站wordpress dux 1.6
  • 什么做的网站推广wordpress 建站 视频 百度云
  • 全站仪快速建站淮安建设工程协会网站查询
  • 外包app制作费用多少引擎优化搜索
  • 中石化两学一做网站购物网站建设与实现
  • 仿 手机 网站模板html电商直播app开发