国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

HTML5 畫布

什么是 Canvas?

HTML5 <canvas> 元素用于圖形的繪制,通過腳本 (通常是JavaScript)來完成.

在畫布上(Canvas)畫一個(gè)紅色矩形,漸變矩形,彩色矩形,和一些彩色的文字。

<canvas> 標(biāo)簽只是圖形容器,您必須使用腳本來繪制圖形。

你可以通過多種方法使用Canva繪制路徑,盒、圓、字符以及添加圖像。


瀏覽器支持

7.jpg


Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持 <canvas> 元素.

注意:?Internet Explorer 8 及更早 IE 版本的瀏覽器不支持 <canvas> 元素.


創(chuàng)建一個(gè)畫布(Canvas)

一個(gè)畫布在網(wǎng)頁(yè)中是一個(gè)矩形框,通過 <canvas> 元素來繪制.

注意:?默認(rèn)情況下 <canvas> 元素沒有邊框和內(nèi)容。

<canvas>簡(jiǎn)單實(shí)例如下:

<canvas id="myCanvas" width="200" height="100"></canvas>

注意:?標(biāo)簽通常需要指定一個(gè)id屬性 (腳本中經(jīng)常引用), width 和 height 屬性定義的畫布的大小.

提示:你可以在HTML頁(yè)面中使用多個(gè) <canvas> 元素.

使用 style 屬性來添加邊框:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php.cn</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #28c9b6;">
    您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。
</canvas>
</body>
</html>

運(yùn)行程序嘗試一下


使用 JavaScript 來繪制圖像

canvas 元素本身是沒有繪圖能力的。所有的繪制工作必須在 JavaScript 內(nèi)部完成:

實(shí)例

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php.cn</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
    您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。
</canvas>
<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    ctx.fillStyle="#FF0000";
    ctx.fillRect(0,0,150,75);
</script>
</body>
</html>

程序運(yùn)行結(jié)果:

1.jpg

實(shí)例解析:

首先,找到 <canvas> 元素:

var c=document.getElementById("myCanvas");

然后,創(chuàng)建 context 對(duì)象:

var ctx=c.getContext("2d");

getContext("2d") 對(duì)象是內(nèi)建的 HTML5 對(duì)象,擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。

下面的兩行代碼繪制一個(gè)紅色的矩形:

ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);

設(shè)置fillStyle屬性可以是CSS顏色,漸變,或圖案。fillStyle 默認(rèn)設(shè)置是#000000(黑色)。

fillRect(x,y,width,height) 方法定義了矩形當(dāng)前的填充方式。


Canvas 坐標(biāo)

canvas 是一個(gè)二維網(wǎng)格。

canvas 的左上角坐標(biāo)為 (0,0)

上面的 fillRect 方法擁有參數(shù) (0,0,150,75)。

意思是:在畫布上繪制 150x75 的矩形,從左上角開始 (0,0)。

坐標(biāo)實(shí)例

如下圖所示,畫布的 X 和 Y 坐標(biāo)用于在畫布上對(duì)繪畫進(jìn)行定位。鼠標(biāo)移動(dòng)的矩形框上,顯示定位坐標(biāo)。

1.jpg


Canvas - 路徑

在Canvas上畫線,我們將使用以下兩種方法:

moveTo(x,y) 定義線條開始坐標(biāo)

lineTo(x,y) 定義線條結(jié)束坐標(biāo)

繪制線條我們必須使用到 "ink" 的方法,就像stroke().

實(shí)例

定義開始坐標(biāo)(0,0), 和結(jié)束坐標(biāo) (200,100). 然后使用 stroke() 方法來繪制線條:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php.cn</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d31029;">
    您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。</canvas>
<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    ctx.moveTo(0,0);
    ctx.lineTo(200,100);
    ctx.stroke();
</script>
</body>
</html>

程序運(yùn)行結(jié)果:

8.jpg


在canvas中繪制圓形, 我們將使用以下方法:

arc(x,y,r,start,stop)

實(shí)際上我們?cè)诶L制圓形時(shí)使用了 "ink" 的方法, 比如 stroke() 或者 fill().

實(shí)例

使用 arc() 方法 繪制一個(gè)圓:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php.cn</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #1d17ff;">
    您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。</canvas>
<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    ctx.beginPath();
    ctx.arc(95,50,40,0,2*Math.PI);
    ctx.stroke();
</script>
</body>
</html>

程序運(yùn)行結(jié)果:

4.jpg


Canvas - 文本

使用 canvas 繪制文本,重要的屬性和方法如下:

font - 定義字體

fillText(text,x,y) - 在 canvas 上繪制實(shí)心的文本

strokeText(text,x,y) - 在 canvas 上繪制空心的文本

實(shí)例

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php.cn</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
    您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。</canvas>
<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    ctx.font="30px Arial";
    ctx.fillText("Hello World",10,30);
    ctx.strokeText("你好嗎!",10,80);
</script>
</body>
</html>

程序運(yùn)行結(jié)果:

8.jpg


Canvas - 漸變

漸變可以填充在矩形, 圓形, 線條, 文本等等, 各種形狀可以自己定義不同的顏色。

以下有兩種不同的方式來設(shè)置Canvas漸變:

createLinearGradient(x,y,x1,y1) - 創(chuàng)建線條漸變

createRadialGradient(x,y,r,x1,y1,r1) - 創(chuàng)建一個(gè)徑向/圓漸變

當(dāng)我們使用漸變對(duì)象,必須使用兩種或兩種以上的停止顏色。

addColorStop()方法指定顏色停止,參數(shù)使用坐標(biāo)來描述,可以是0至1.

使用漸變,設(shè)置fillStyle或strokeStyle的值為 漸變,然后繪制形狀,如矩形,文本,或一條線。


實(shí)例

使用 createLinearGradient(),創(chuàng)建一個(gè)線性漸變。使用漸變填充矩形:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php.cn</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
    您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。</canvas>
<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    // 創(chuàng)建漸變
    var grd=ctx.createLinearGradient(0,0,200,10);
    grd.addColorStop(0,"red");
    grd.addColorStop(1,"white");
    // 充滿度
    ctx.fillStyle=grd;
    ctx.fillRect(10,10,150,80);
</script>
</body>
</html>

程序運(yùn)行結(jié)果:

3.jpg


實(shí)例

使用 createRadialGradient(),創(chuàng)建一個(gè)徑向/圓漸變。使用漸變填充矩形:

<!DOCTYPE html>
<html>
<head> 
    <meta charset="UTF-8">
    <title>php中文網(wǎng)(php.cn)</title> 
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
    您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。</canvas>
<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    // Create gradient
    var grd=ctx.createRadialGradient(75,50,5,90,60,100);
    grd.addColorStop(0,"red");
    grd.addColorStop(1,"white");
    // Fill with gradient
    ctx.fillStyle=grd;
    ctx.fillRect(10,10,150,80);
</script>
</body>
</html>

程序運(yùn)行結(jié)果:

5.jpg


Canvas - 圖像

你可以把一張圖片放到畫布上,這樣你就可以對(duì)圖片做一些操作加一些你想要的素材,比如文字什么的。

把一幅圖像放置到畫布上使用以下方法:

drawImage(image,x,y)

使用圖像

7.jpg

實(shí)例

把一幅圖像放置到畫布上:

<!DOCTYPE html>
<html>
<head> 
    <meta charset="UTF-8">
    <title>php中文網(wǎng)(php.cn)</title> 
</head>
<body>
<p>使用圖像:</p>
<img id="scream" src="http://img.blog.163.com/photo/g8yDNFsGMeq-pzHY2_n3aQ==/356628795492853826.jpg" alt="The Scream" width="220" height="277"><p>畫布:</p>
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;">
    您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。</canvas>
<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    var img=document.getElementById("scream");
    img.onload = function() {
        ctx.drawImage(img,10,10);
    }
</script>
</body>
</html>

程序運(yùn)行結(jié)果:

1.jpg


HTML Canvas 參考手冊(cè)

標(biāo)簽的完整屬性可以參考Canvas 參考手冊(cè).


The HTML <canvas> 標(biāo)簽

? ? ?標(biāo)簽? ? ?描述
? ? ?<canvas>HTML5 的 canvas 元素使用 JavaScript 在網(wǎng)頁(yè)上繪制圖像。


繼續(xù)學(xué)習(xí)
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> 您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。</canvas> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.font="30px Arial"; ctx.fillText("Hello World",10,30); ctx.strokeText("你好嗎!",10,80); </script> </body> </html>
提交重置代碼