html5 canvas-1.canvas介紹(hello canvas)
來源:易賢網 閱讀:1751 次 日期:2016-07-23 14:13:08
溫馨提示:易賢網小編為您整理了“html5 canvas-1.canvas介紹(hello canvas)”,方便廣大網友查閱!

我們將開始一個關于html5 canvas的系列課程。這個系列是我讀《HTML5 Canvas:Native Interactivity and Animation for the Web》后的總結,有興趣的朋友可以去下載英文原版書籍閱讀。這本書通過介紹canvas游戲開發的方式,向我們展現canvas強大的功能,我覺得相當不錯,通過閱讀這本書我學到了canvas很多的知識。其實canvas本身的api并不多,關鍵是活學活用,學會對api的組合使用制作出令人難以置信的效果。而這本書就是你學習canvas最好的選擇,只可惜他暫時還沒有中文版,英文不好的朋友只有再等等了。

大家都知道,目前并不是所有的瀏覽器中支持html5,就算是支持html5的瀏覽器,也不見得支持html5所有的新特性。所以大家要選擇一款比較新的瀏覽器作為自己的調試環境,建議大家使用firefox(開發者的最愛)或者是chrome瀏覽器,我所有的例子都是基于firefox開發的。

html5相關的基礎知識這里就不做介紹了,網上有很多關于html5的教程,自行學習吧。學習html5需要大家有比較好的javascript的基礎,大家可以去湯姆大叔的博客進行學習:http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html。其實他的這個系列課程還是有相當難度的,50多篇全學好你應該算是js專家了。

現在我們正式開始我們的canvas課程,第一個例子:“hello canvas”。

首先需要在body中添加canvas標簽,如下:

代碼如下:

<canvas id="canvasOne" width="500" height="300">

Your browser does not support HTML5 Canvas.

</canvas>

canvas中的text部分將會在瀏覽器不支持canvas對象時顯示。

定義了canvas標簽,當我們需要通過js對他進行操作的時候,通過getElementById就可以實現。

var theCanvas = document.getElementById("canvasOne");我們現在已經習慣使用jquery來開發任務,那么使用jquery如何獲取canvas對象呢?

var canvas = $('#canvasOne').get(0);或var canvas = $('#canvasOne')[0];不知道大家注意到get(0)和[0]沒有,如果沒有使用get()方法或者[]下標的話,你的js代碼將不能正常對canvas進行操作。因為$('#canvasOne')獲取到的是一個jquery對象,而我們實際要操作的是一個html dom對象。這里有存在一個jquery對象轉變成dom對象的問題,通過get()或者下標的方式就完成了這個轉換。如果需要把一個dom對象轉換成jquery對象,可以使用$()方法實現。不清楚的朋友只有自己去百度了,這里不做深究。

為了代碼的健壯性,我們需要判斷你的瀏覽器是否支持canvas對象,可以通過下面代碼實現。

代碼如下:

if (!theCanvas || !theCanvas.getContext) {

return;

}

不過推薦大家使用modernizr.js庫完成這一工作,這是一個很通過的html5 js庫,提供了很多有用的方法

代碼如下:

function canvasSupport () {

return Modernizr.canvas;

}

canvas支持2d渲染,通過如下代碼實現:

var context = theCanvas.getContext("2d");

下面我們就可以通過context對象在canvas上繪制圖像了。

代碼如下:

//設置區域顏色

context.fillStyle = "#ffffaa";

//繪制區域

context.fillRect(0, 0, 500, 300);

//設置字體

context.font = "20px _sans";

//設置垂直對齊方式

context.textBaseline = "top";

//繪制文字

context.fillText ("Hello World!", 195, 80);

//設置邊框顏色

context.strokeStyle = "#000000";

//繪制邊框

context.strokeRect(5, 5, 490, 290);

下面介紹下圖片的繪制。由于圖片的異步下載的,為了保證你用canvas繪制一個圖片時,該圖片已經下載完畢,我們使用下面的方式:

代碼如下:

var helloWorldImage = new Image();

helloWorldImage.src = "helloworld.gif";

helloWorldImage.onload = function () {

context.drawImage(helloWorldImage, 160, 130);

}

當圖片下面完畢時,會觸發onload事件,這里再使用context對象繪制圖片。

更多信息請查看網頁制作
易賢網手機網站地址:html5 canvas-1.canvas介紹(hello canvas)
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
未满十八18勿进黄网站免费看