HTML5基礎 Canvas元素

2021-07-04 01:11:22 字數 3769 閱讀 7729

(1)這是乙個畫布標籤,用於繪製圖形,在網頁中顯示是乙個矩形,沒有內容和邊框,通常放置canvas標籤的時候需要新增乙個id屬性,便於用js進行繪製時讀取該畫布。

(2)該元素可以設定長寬和邊框樣式,具體**如下:

注:canvas是完全沒有繪圖的工作,繪製的工作全部都交給js,canvas僅僅是乙個畫布而已。

用js畫任何東西的時候都要先加入這兩行**。

(1)var c = document.getelementbyid("mycanvas");//這時候canvas裡面的id就有用了,這是用js讀取canvas元素,就是相當於畫畫前最起碼有個畫布,不然亂塗亂畫這是不文明的。

(2)var cxt = c.getcontext("2d");//getcontext("2d")這是乙個html5的內建物件,擁有很多種畫圖的方法;相當於一本參考書,你有了畫布之後還要有一本參考書,這樣才能順利畫圖。

當準備好了畫布和一本參考書之後,就可以隨便畫,畫出你心裡所想的,這節奏真的不要太爽。

先畫乙個紅色矩形並填充顏色:

**如下:

您的瀏覽器不支援html5

**中有點東西是沒說過的,沒事,容老夫一一解說,如有不對多多指正.

(1)您的瀏覽器不支援html5這句話的意思好明顯嘛,就是假如你的html檔案在不支援canvas標籤的情況下就顯示這麼一段話。

(2)fillstyle,這個屬性按照我理解就是你自己想填充什麼東西,它可以是顏色,圖案,漸變。

(3)fillrect(x,y,width,height),這方法定義了填充乙個矩形的x,y座標(這x,y座標是指矩形的左上角),然後width就是矩形的長度了,height就是矩形的高度了。

畫完圖形,就是要畫乙個線條,正所謂點線面,線也是很重要的

您的瀏覽器不支援html5

(1)畫畫之前還是不要忘了兩個必備的工作,畫布和書,也就是第一行和第二行**。

(2)moveto(x,y),意思是線段的起始座標,可以說是你想把線打算從什麼位置開始

(3)lineto(x,y),意思就是線段的結束座標,可以說就是你這條線打算

(4)strokestyle,這個就是你畫一條線的樣式是什麼,例如線的顏色

(5)stroke(),這方法表示繪製線條,那你的線開始位置和結束位置都規劃好了,還等什麼,stroke一下畫出來吧,就是這麼簡單。

我是這樣理解的,當要畫的時候就是要stroke,而填充的就是fill。

(1)畫畫之前還是不要忘了兩個必備的工作,畫布和書,也就是第一行和第二行**。

(2)arc(x, y,r,start,stop,true/false);x,y分別代表圓心的座標,start表示畫圓的開始的地方,stop表示畫圖圓停止的地方,true/false代表預設為false表示順時針畫圓,true代表逆時針畫圓

(3)最後還要記得規劃好之後,需要填充的話就寫下fillstyle,然後fill(),如果只是描邊的話就寫stroke()。

如:

cxt.fillstyle = "#f00";

cxt.arc(50,50,40,0,0.5*math.pi,false);

cxt.fill();

cxt.stroke();

(2)第一步我就不說了,大家都懂,直接跳到第二步,.font("size family"),設定字型的大小和樣式

(3)stroketext("text",x,y),所需要描出的字和位置

cxt.font = "30px arial";

cxt.strokestyle = "#ff0";

cxt.stroketext("hello world",10,50);

(4)filltext("text",x,y)所需要填充的字和位置

cxt.font = "30px arial";

cxt.fillstyle = "#ff0";

cxt.filltext("hello world",10,50);

如果對線性漸變和徑向漸變不熟悉的話,可以先了解一下!

建立線性漸變,這個有點複雜,但是沒關係。

(2)直奔主題,var mygradient = cxt.createlineargradient(0,0,200,0);,建立線性漸變的開始座標和結束座標

(3)mygradient.addcolorstop(0,"#000");

mygradient.addcolorstop(1,"#fff");這是建立線性漸變開始的顏色和開始位置和結束顏色和結束位置。

(4)cxt.fillstyle = mygradient;

cxt.fillrect(50,50,170,100);  最後把這個設定好的線性漸變放入fillstyle裡面。最後填充乙個矩形。

建立徑向漸變,並用徑向漸變建立乙個圓,其實和線性漸變差不多!都是小case

(2)也是直奔主題,建立乙個徑向漸變,createradialgradient(starx,stary,starr,endx,endy,endr)。可以想象成開始那個圓的座標半徑和結束圓的座標半徑。

var mygradient = cxt.createradialgradient(0,0,200,0);

(3)mygradient.addcolorstop(0,"#000");

mygradient.addcolorstop(1,"#fff");和建立線性漸變一樣,建立線性漸變開始的顏色和開始位置和結束顏色和結束位置。

(4)餘下的操作就是填充漸變顏色,然後繪製乙個圓,最後填充cxt.fill()

cxt.fillstyle = mygradient;

cxt.arc(50,50,50,0,1.5*math.pi);

cxt.fill()

這些都是簡單的總結,如果想深入學習請檢視相關資料!

HTML5新增畫布元素canvas

canvas元素是乙個正常的html元素,相當於在頁面插入乙個畫布。在標記中設定寬 高屬性,在調整寬 高屬性後裡面的內容不會縮放。但是在css中指定這些屬性,在縮放畫布後,裡面內容也會縮放。預設情況下畫布是透明的,除非你在畫布上繪製了內容,否則是看不到它的。如果你想我證明畫布確實存在,就能看到乙個黑...

HTML5新元素之Canvas詳解(1)

元素定義 替代內容 很多不支援html5的瀏覽器,如果那些瀏覽器開啟含有標籤頁面,並不能顯示canvas內容,這裡可以加入替代內容,用以提示使用者公升級瀏覽器。提示內容直接作為元素內容寫在元素內 如下 你的瀏覽器不支援canvas,請公升級瀏覽器 注意 結束標籤是必須的 渲染上下文 建立的固定尺寸的...

HTML5新增的canvas元素技能之一

1 利用canvas元素建立畫布 1 建立畫布 指定canvas元素的三個屬性id width 寬度 height 高度 3 使用draw函式進行繪畫 在body元素中加入 nl ad draw canvas 屬性,呼叫指令碼檔案中的draw函式,canvas的基本語法如下 2 利用canvas元素...