解决vue canvas改变大小后清空画布导致的问题


需求:要实现一个可以通过拖拽改变大小的方框,在方框内按一定距离画上横线,效果如图所示

 

实现:在拖动改变方框大小的时候,计算方框的高度,并按照要求画上横线

遇到的问题和解决方法:

1、在最开始实现的方案中,通过style去改变canvas大小,但是这种方式实际是将canvas拉伸,因此横线的粗细会发生变化。通过canvas的height和width属性设置大小即可解决

2、拖动过程中白线会一直闪烁。这是因为设置了canvas的height和width属性值,导致canvas大小发生了变化,从而在重新渲染时清空了画布上的内容,因此横线处于不停擦除和重画的过程,表现为闪烁。

解决方法是将绘制横线放在onUpdated中去完成,这样在dom渲染阶段就将内容放在画布上,实际就是让擦除和重画基本处于同时完成,这样就看不出来闪烁了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM