不同點(diǎn):1、畫(huà)布依賴(lài)分辨率,而SVG不依賴(lài)分辨率;2、畫(huà)布不支持事件處理器,SVG支持事件處理器;3、畫(huà)布適合圖像密集型的游戲應(yīng)用,SVG不適合游戲應(yīng)用;4、svg是通過(guò)XML定義的,而Canvas是通過(guò)javascript定義的。
本教程操作環(huán)境:windows7系統(tǒng)、HTML5版、Dell G3電腦。
Canvas(畫(huà)布)是Javascript進(jìn)行繪圖的,是逐像素繪圖。Canvas一旦圖象繪制完成,就于瀏覽器無(wú)關(guān)了,圖象的位置發(fā)生變化,整個(gè)場(chǎng)景都需要重新重新繪制,包括已經(jīng)被覆蓋的元素。
svg是使用xml繪制,可以為svg添加javascript的事件處理器。所有的DOM都是可用的,屬性發(fā)生變化,瀏覽器會(huì)自動(dòng)重新繪制。
SVG和Canvas的不同:
Canvas(畫(huà)布)
-
依賴(lài)分辨率
-
不支持事件處理器
-
弱的文本渲染能力
-
能夠以 .png 或 .jpg 格式保存結(jié)果圖像
-
最適合圖像密集型的游戲,其中的許多對(duì)象會(huì)被頻繁重繪
-
Canvas是通過(guò)javascript定義的。
SVG
-
不依賴(lài)分辨率
-
支持事件處理器
-
最適合帶有大型渲染區(qū)域的應(yīng)用程序(比如谷歌地圖)
-
復(fù)雜度高會(huì)減慢渲染速度(任何過(guò)度使用 DOM 的應(yīng)用都不快)
-
不適合游戲應(yīng)用
-
svg是通過(guò)XML定義的