<canvas> 元素用於圖形的繪製,經過腳本 (一般是JavaScript)來完成.javascript
<canvas> 標籤只是圖形容器,您必須使用腳原本繪製圖形。html
屬性java |
描述chrome |
fillStylecanvas |
設置或返回用於填充繪畫的顏色、漸變或模式。字體 |
設置或返回用於筆觸的顏色、漸變或模式。spa |
|
設置或返回用於陰影的顏色。rest |
|
設置或返回用於陰影的模糊級別。 |
|
設置或返回陰影與形狀的水平距離。 |
|
設置或返回陰影與形狀的垂直距離。 |
方法 |
描述 |
建立線性漸變(用在畫布內容上)。 |
|
在指定的方向上重複指定的元素。 |
|
建立放射狀/環形的漸變(用在畫布內容上)。 |
|
規定漸變對象中的顏色和中止位置。 |
屬性 |
描述 |
設置或返回線條的結束端點樣式。 |
|
設置或返回兩條線相交時,所建立的拐角類型。 |
|
設置或返回當前的線條寬度。 |
|
設置或返回最大斜接長度。 |
方法 |
描述 |
建立矩形。 |
|
繪製"被填充"的矩形。 |
|
繪製矩形(無填充)。 |
|
在給定的矩形內清除指定的像素。 |
方法 |
描述 |
填充當前繪圖(路徑)。 |
|
繪製已定義的路徑。 |
|
起始一條路徑,或重置當前路徑。 |
|
把路徑移動到畫布中的指定點,不建立線條。 |
|
建立從當前點回到起始點的路徑。 |
|
添加一個新點,而後在畫布中建立從該點到最後指定點的線條。 |
|
從原始畫布剪切任意形狀和尺寸的區域。 |
|
建立二次貝塞爾曲線。 |
|
建立三次貝塞爾曲線。 |
|
建立弧/曲線(用於建立圓形或部分圓)。 |
|
建立兩切線之間的弧/曲線。 |
|
若是指定的點位於當前路徑中,則返回 true,不然返回 false。 |
|
ellipse() |
建立橢圓(chrome34以及Opera18以上支持) |
setLineDash() |
建立虛線(Chrome26/Firefox28/IE11/Opera18/Safari7以上) |
方法 |
描述 |
縮放當前繪圖至更大或更小。 |
|
旋轉當前繪圖。 |
|
從新映射畫布上的 (0,0) 位置。 |
|
替換繪圖的當前轉換矩陣。 |
|
將當前轉換重置爲單位矩陣。而後運行 transform()。 |
屬性 |
描述 |
設置或返回文本內容的當前字體屬性。 |
|
設置或返回文本內容的當前對齊方式。 |
|
設置或返回在繪製文本時使用的當前文本基線。 |
方法 |
描述 |
在畫布上繪製"被填充的"文本。 |
|
在畫布上繪製文本(無填充)。 |
|
返回包含指定文本寬度的對象。 |
方法 |
描述 |
向畫布上繪製圖像、畫布或視頻。 |
屬性 |
描述 |
返回 ImageData 對象的寬度。 |
|
返回 ImageData 對象的高度。 |
|
返回一個對象,其包含指定的 ImageData 對象的圖像數據。 |
方法 |
描述 |
建立新的、空白的 ImageData 對象。 |
|
返回 ImageData 對象,該對象爲畫布上指定的矩形複製像素數據。 |
|
把圖像數據(從指定的 ImageData 對象)放回畫布上。 |
屬性 |
描述 |
設置或返回繪圖的當前 alpha 或透明值。 |
|
設置或返回新圖像如何繪製到已有的圖像上。 |
方法 |
描述 |
save() |
保存當前環境的狀態。 |
restore() |
返回以前保存過的路徑狀態和屬性。 |
createEvent() |
|
getContext() |
|
toDataURL() |
|
var oCanvas = document.getElementById("canvas");
var context = oCanvas.getContext("2d");
根據需求選擇方法
Context.lineWidth=1;
Context.fillRect(x,y,width,height);
Context.strokeRect(x,y,width,height);
Context.beginPath(); Context.arc(x,y,radius,startAngle,endAngle,anticlockwise);(for循環圓心、半徑) Context.closePath(); Context.fillStyle=’rgba(255,0,0,0.25)’ Context.fill() ellipse(x,y,radiusX,radiusY,rotation,startAngle,endAngle,anticlockwise)
Context.moveTo(20,20); Context.lineTo(20,200); Context.lineWidth=10; Context.lineCap=」round」; Context.lineJoin=」round」; Context.stroke(); Context.setLineDash([5,15])
(x0,y0)當前座標點,(x1,y1)控制點座標,(x2,y2)圓弧終點座標
Context.arcTo(x1,y1,x2,y2,radiusX)
開始點:moveTo(20,20) 控制點 1:quadraticCurveTo(20,100,200,20) 結束點:quadraticCurveTo(20,100,200,20) Context. quadraticCurveTo(cpx,cpy,x,y) (cpx,cpy)控制點座標,(x,y)終點座標
開始點:moveTo(20,20) 控制點 1:bezierCurveTo(20,100,200,100,200,20) 控制點 2:bezierCurveTo(20,100,200,100,200,20) 結束點:bezierCurveTo(20,100,200,100,200,20) Context.bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y); (cp1x,cp1y)第一個控制點,(cp2x,cp2y)第二個控制點,(x,y)終點
Var grd=context.createLinearGradient(xStart,yStart,xEnd,yEnd)
(xStart,yStart)起點,(xEnd,yEnd)終點
grd.addColorStop(offset,color);
offset範圍是0~1之間的浮點數,color是關鍵顏色
Var grd=context.createRadialGradient(xStart,yStart,radiusStart,xEnd,yEnd,radiusEnd);
(xStart,yStart,radiusStart)起點圓的中心點座標和半徑,(xEnd,yEnd,radiusEnd)終點圓的中心點座標和半徑
Context.translate(x,y)
Context.scale(x,y);
Context.rotate(angle);
Context.shadowOffetX:陰影橫向位移量
Context.shadowOffetY:陰影縱向位移量
Context.shadowColor:陰影顏色
Context.shadowBlur陰影的模糊範圍
Var image=new Image(); image.src=」 http://img4.duitang.com/uploads/item/201406/25/20140625182321_4MTau.thumb.700_0.jpeg」; image.onload=function(){} Context.drawImage(image,x,y); Context.drawImage(image,x,y,w,h); Context.drawIamge(image,sx,sy,sw,sh,dx,dy,dw,dh);
Var pat= context.createPattern(image,」repeat」); Context.fillStyle=pat; Context.fillRect(0,0,400,300);
先繪製好路徑
Context.clip();
Context.globalCompositeOperation=type;
Context.globalCompositeOperation=type; Type值 Normal:默認模式 Darken:變暗模式 Lighten:變亮模式 Multiply:正片疊底 Screen:濾色模式 Color-burn:顏色加深 Color-dodge:顏色減淡 Hard-light:強光模式 Soft-light:柔光模式 Overlay:疊加模式 Difference:差值模式 Exclusion:排除模式
Context.fillStyle=’#00F’; Context.font=」bold 30px sans-serif」; Context.fillText(「hello world」,0,0); Context.strokeText(「hello world」,0,0); Var metrics=context.measureText(text);
Context.save();
Context.restore();