溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

html5中canvas怎么用

發(fā)布時(shí)間:2021-10-14 09:52:15 來(lái)源:億速云 閱讀:133 作者:小新 欄目:web開(kāi)發(fā)

這篇文章給大家分享的是有關(guān)html5中canvas怎么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。



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

html5相關(guān)的基礎(chǔ)知識(shí)這里就不做介紹了,網(wǎng)上有很多關(guān)于html5的教程,自行學(xué)習(xí)吧。學(xué)習(xí)html5需要大家有比較好的javascript的基礎(chǔ),大家可以去湯姆大叔的博客進(jìn)行學(xué)習(xí):http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html。其實(shí)他的這個(gè)系列課程還是有相當(dāng)難度的,50多篇全學(xué)好你應(yīng)該算是js專(zhuān)家了。
現(xiàn)在我們正式開(kāi)始我們的canvas課程,第一個(gè)例子:“hello canvas”。
首先需要在body中添加canvas標(biāo)簽,如下

代碼如下:


<canvas id="canvasOne" width="500" height="300">
Your browser does not support HTML5 Canvas.
</canvas>


canvas中的text部分將會(huì)在瀏覽器不支持canvas對(duì)象時(shí)顯示。
定義了canvas標(biāo)簽,當(dāng)我們需要通過(guò)js對(duì)他進(jìn)行操作的時(shí)候,通過(guò)getElementById就可以實(shí)現(xiàn)。
var theCanvas = document.getElementById("canvasOne");我們現(xiàn)在已經(jīng)習(xí)慣使用jquery來(lái)開(kāi)發(fā)任務(wù),那么使用jquery如何獲取canvas對(duì)象呢?
var canvas = $('#canvasOne').get(0);或var canvas = $('#canvasOne')[0];不知道大家注意到get(0)和[0]沒(méi)有,如果沒(méi)有使用get()方法或者[]下標(biāo)的話,你的js代碼將不能正常對(duì)canvas進(jìn)行操作。因?yàn)?('#canvasOne')獲取到的是一個(gè)jquery對(duì)象,而我們實(shí)際要操作的是一個(gè)html dom對(duì)象。這里有存在一個(gè)jquery對(duì)象轉(zhuǎn)變成dom對(duì)象的問(wèn)題,通過(guò)get()或者下標(biāo)的方式就完成了這個(gè)轉(zhuǎn)換。如果需要把一個(gè)dom對(duì)象轉(zhuǎn)換成jquery對(duì)象,可以使用$()方法實(shí)現(xiàn)。不清楚的朋友只有自己去百度了,這里不做深究。
為了代碼的健壯性,我們需要判斷你的瀏覽器是否支持canvas對(duì)象,可以通過(guò)下面代碼實(shí)現(xiàn)。

代碼如下:


if (!theCanvas || !theCanvas.getContext) {
return;
}


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

代碼如下:


function canvasSupport () {
return Modernizr.canvas;
}


canvas支持2d渲染,通過(guò)如下代碼實(shí)現(xiàn)
var context = theCanvas.getContext("2d");
下面我們就可以通過(guò)context對(duì)象在canvas上繪制圖像了。

代碼如下:


//設(shè)置區(qū)域顏色
context.fillStyle = "#ffffaa";
//繪制區(qū)域
context.fillRect(0, 0, 500, 300);
//設(shè)置字體
context.font = "20px _sans";
//設(shè)置垂直對(duì)齊方式
context.textBaseline = "top";
//繪制文字
context.fillText ("Hello World!", 195, 80);
//設(shè)置邊框顏色
context.strokeStyle = "#000000";
//繪制邊框
context.strokeRect(5, 5, 490, 290);


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

代碼如下:


var helloWorldImage = new Image();
helloWorldImage.src = "helloworld.gif";
helloWorldImage.onload = function () {
context.drawImage(helloWorldImage, 160, 130);
}


當(dāng)圖片下面完畢時(shí),會(huì)觸發(fā)onload事件,這里再使用context對(duì)象繪制圖片。

感謝各位的閱讀!關(guān)于“html5中canvas怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI