html5的canvas元素怎么使用

這篇文章主要介紹“html5的canvas元素怎么使用”,在日常操作中,相信很多人在html5的canvas元素怎么使用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”html5的canvas元素怎么使用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)公司主要業(yè)務(wù)有網(wǎng)站營(yíng)銷策劃、網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、成都小程序開(kāi)發(fā)、H5場(chǎng)景定制、程序開(kāi)發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開(kāi)展業(yè)務(wù)的過(guò)程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、營(yíng)銷型網(wǎng)站建設(shè)資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。 

代碼如下:

<canvas></canvas>

他有基本的html標(biāo)簽的所有屬性,一樣可以給他設(shè)置style。

復(fù)制代碼

代碼如下:

<canvas style="width:400px;height:300px;"></canvas>

<style>

canvas{width:400px;height:400px;background:#000;}

</style>

<canvas></canvas>

他還有一個(gè)特定的attribute:

復(fù)制代碼

代碼如下:

<canvas height="300" width="400"></canvas>

這里的height、width與以往的html標(biāo)簽的attribute不同,也與style中的height、width不同,這里主要是指canvas中的坐標(biāo)范圍。而style里的width、height是指canvas實(shí)際展示的大小。

比如定義下面的一個(gè)canvas:

復(fù)制代碼

代碼如下:

<canvas width="400" height="300" style="width:600px;height:450px;border:1px solid #000;"></canvas>

然后在canvas中畫(huà)一個(gè)坐標(biāo)為  100、50,大小為200、150的矩形,你會(huì)看到實(shí)際的效果如下圖:

圖中 canvas的大小是通過(guò)style決定的 600px * 450px,但是填滿整個(gè)canvas的坐標(biāo)只是400*300, 對(duì)應(yīng)著括號(hào)里的大小。

在canvas中畫(huà)圖是基于坐標(biāo)的,所以100, 50的坐標(biāo)轉(zhuǎn)化成了150px,75px的屏幕坐標(biāo),矩形的大小也由200*150轉(zhuǎn)換成300px*225px的屏幕大小。

你可以按照下面的代碼自己試一試:

復(fù)制代碼

代碼如下:

<!doctype html>

<html></p><p><body>

<canvas width="400" height="300" style="width:600px;height:450px;border:1px solid #000;"></canvas>

<script>

var context =document.getElementsByTagName("canvas")[0].getContext("2d");

context.fillRect(100,50,200,150);

</script>

</body>

</html>

canvas的還有些其他attribute,還沒(méi)有去看,他還有一個(gè)主要的方法,就是getContext(),這個(gè)方法就是獲取畫(huà)圖的對(duì)象。

通過(guò)canvas的dom對(duì)象,可以調(diào)用getContext("2d")的方法獲取對(duì)應(yīng)的畫(huà)圖對(duì)象:

var canvas = document.getElementsByTagName("canvas")[0];

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

在開(kāi)發(fā)者控制臺(tái)里可以看到這個(gè)drawing2d的屬性及方法:

包含了fillStyle、stokeStyle、lineCap、font等畫(huà)筆樣式類的屬性,fillRect、strokeRect、beginPath、moveTo、lineTo、closePath、stroke、fill、drawImage等畫(huà)圖動(dòng)作的方法,還有一些其他的一些transfrom、save等方法。

簡(jiǎn)單說(shuō)一下我看了的幾個(gè)屬性和方法,其他的需要自己去摸索哦:

fillStyle:填充樣式,可以是顏色值的html碼 如紅色:#ff0000,其他是不是支持css3的更多屬性就不知道了

strokeStyle:線條樣式

font:字體樣式

fillRect:function(x,y,width,height),直接按fillStyle填滿一個(gè)矩形

strokeRect:function(x,y,width,height),直接按strokeStyle描一個(gè)矩形邊

beginPath:開(kāi)始畫(huà)線,配合moveTo/lineTo/closePath等畫(huà)折線或多邊形

moveTo:function(x,y)將畫(huà)線起點(diǎn)移動(dòng)到新的坐標(biāo)

lineTo:function(x,y)從當(dāng)前點(diǎn)畫(huà)的目標(biāo)點(diǎn)

closePath:從當(dāng)前點(diǎn)連接到起點(diǎn)

stroke:按照上面的路徑按strokeStyle畫(huà)折線

fill:按上面的路徑按fillStyle畫(huà)矩形

drawImage: function(image,x,y,width,height)將Image對(duì)象添加的畫(huà)布上。注意這里的image對(duì)象必須是已經(jīng)加載完畢的。如 var img = new Image();img.src="test.png";img.onload = function(){/*在這里才能將image添加到畫(huà)布*/}

可以看下上面畫(huà)矩形的方法:

復(fù)制代碼

代碼如下:

context.fillRect(100,50,200,150);

畫(huà)一條折線:

復(fù)制代碼

代碼如下:

context.beginPath();

context.moveTo(10,10);

context.lineTo(10,110);

context.lineTo(110,110);

context.lineTo(110,10);

context.closePath();

context.stroke();

canvas具有繪圖的功能,但是在用戶交互上似乎比較乏力。拿silverlight的canvas、.NET的Bitmap、html的div與canvas對(duì)比了一下:

個(gè)人感覺(jué)canvas和Bitmap更像,是一個(gè)將Bitmap放到瀏覽器端的一個(gè)版本,當(dāng)然我們可以通過(guò)他來(lái)實(shí)現(xiàn)更多的功能。canvas本身能實(shí)現(xiàn)的還是比較少,但是配合現(xiàn)有的其他瀏覽器端應(yīng)用的技術(shù)肯定能創(chuàng)造出更多好的應(yīng)用。

到此,關(guān)于“html5的canvas元素怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

網(wǎng)頁(yè)標(biāo)題:html5的canvas元素怎么使用
文章轉(zhuǎn)載:http://muchs.cn/article42/isjjec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)網(wǎng)站設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)建站公司、定制網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)