解決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