您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關html5中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怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。