0
我正在處理畫布應用程序,並使用scale()和translate()實現了放大和縮小功能。 放大後,我的畫布實際上比它在屏幕上看到的要大,所以我想爲整個畫布實現拖放功能。拖動縮放的html畫布
我該怎麼辦?
我正在處理畫布應用程序,並使用scale()和translate()實現了放大和縮小功能。 放大後,我的畫布實際上比它在屏幕上看到的要大,所以我想爲整個畫布實現拖放功能。拖動縮放的html畫布
我該怎麼辦?
拖放到底是什麼?
你的意思是拖動整個畫布場景?這就是所謂的鼠標平移。
在鼠標按下事件,開始平移和保存鼠標位置
在mousemove事件,翻譯由當前鼠標位置和原始位置之間的差的上下文(ctx.translate(x,y)
),然後重新繪製場景。
在mouseup事件中,停止平移。
(有困難的方式,比如你可以實現畫布內部或外部滾動條)
我不能重繪整個場景中的每個鼠標移動 - 它需要大量的時間。 –
您應該可以做到這一點,但您可能必須開始使用優化。例如,您只需要重繪用戶當前可以用畫布看到的對象,並跳過任何屏幕外的繪圖。 –