摘要:本文作者利用一些簡單的對進行了系統的總結,受益匪淺,毫不夸張的說,學習這一篇文章就夠了一簡介是新增的,一個可以使用腳本通常為在其中繪制圖像的元素。
本文作者利用一些簡單的 demo 對 Canvas 進行了系統的總結,受益匪淺,毫不夸張的說,學習 Canvas 這一篇文章就夠了!一、canvas簡介
? 是 HTML5 新增的,一個可以使用腳本(通常為JavaScript)在其中繪制圖像的 HTML 元素。它可以用來制作照片集或者制作簡單(也不是那么簡單)的動畫,甚至可以進行實時視頻處理和渲染。
? 它最初由蘋果內部使用自己MacOS X WebKit推出,供應用程序使用像儀表盤的構件和 Safari 瀏覽器使用。 后來,有人通過Gecko內核的瀏覽器 (尤其是Mozilla和Firefox),Opera和Chrome和超文本網絡應用技術工作組建議為下一代的網絡技術使用該元素。
? Canvas是由HTML代碼配合高度和寬度屬性而定義出的可繪制區域。JavaScript代碼可以訪問該區域,類似于其他通用的二維API,通過一套完整的繪圖函數來動態生成圖形。
? Mozilla 程序從 Gecko 1.8 (Firefox 1.5)開始支持 , Internet Explorer 從IE9開始 。Chrome和Opera 9+ 也支持 。
二、Canvas基本使用 2.1 元素? 看起來和標簽一樣,只是 只有兩個可選的屬性 width、heigth 屬性,而沒有 src、alt 屬性。
? 如果不給設置widht、height屬性時,則默認 width為300、height為150,單位都是px。也可以使用css屬性來設置寬高,但是如寬高屬性和初始比例不一致,他會出現扭曲。所以,建議永遠不要使用css屬性來設置的寬高。
替換內容? 由于某些較老的瀏覽器(尤其是IE9之前的IE瀏覽器)或者瀏覽器不支持HTML元素,在這些瀏覽器上你應該總是能展示替代內容。
? 支持的瀏覽器會只渲染標簽,而忽略其中的替代內容。不支持 的瀏覽器則 會直接渲染替代內容。
用文本替換:
用 替換:
結束標簽不可省
與 元素不同,元素需要結束標簽()。如果結束標簽不存在,則文檔的其余部分會被認為是替代內容,將不會顯示出來。
2.2 渲染上下文(Thre Rending Context)? 會創建一個固定大小的畫布,會公開一個或多個 渲染上下文(畫筆),使用 渲染上下文來繪制和處理要展示的內容。
? 我們重點研究 2D渲染上下文。 其他的上下文我們暫不研究,比如, WebGL使用了基于OpenGL ES的3D上下文 (“experimental-webgl”) 。
var canvas = document.getElementById("tutorial"); //獲得 2d 上下文對象 var ctx = canvas.getContext("2d");2.3 檢測支持性
var canvas = document.getElementById("tutorial"); if (canvas.getContext){ var ctx = canvas.getContext("2d"); // drawing code here } else { // canvas-unsupported code here }2.4 代碼模板
Canvas tutorial