最近在用svg的點擊事件做東西,之所以用svg而不用canvas就是因為svg內的元素可以添加點擊事件,他們之間詳細的區別如下:
Canvas 與SVG 的比較 (詳見)
下表列出了canvas 與SVG 之間的一些差異。
Canvas
•依賴解析度
•不支援事件處理器
•弱的文字渲染能力
•能夠以.png 或.jpg 格式保存結果影像
•最適合影像密集的遊戲,其中的許多物件會被頻繁重繪
SVG
•不依賴解析度
•支援事件處理器
•最適合具有大型渲染區域的應用程式(例如Google地圖)
•複雜度高會減慢渲染速度(任何過度使用DOM 的應用都不快)
•不適合遊戲應用程式
做出的網頁在chorme下可以正常使用,因為要支援行動設備,在android上測試也正常,但是在ipad上打開頁面時發現點擊事件不管用了,查了很多資料,沒有找到問題原因,後來查到w3c中對於svg的描述的demo的確可以實現點擊的效果,對比代碼,發現自己使用的jquery給svg的元素添加的點擊事件,而在svg的元素中沒有onclick= "circle_click(evt)"類似描述,添加上onclick="click(evt)"果然在ipad上svg的元素有了點擊事件