先贴一个以下所有涉及到的实现运行的基本代码段:
Base Code <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script type="text/javascript" src="modernizr-latest.js"></script> <script type="text/javascript"> window.addEventListener("load", eventWindowLoaded, false); var Debugger = function() {}; Debugger.log = function(message) { try { console.log(message); } catch (exception) { return; } } function eventWindowLoaded() { canvasApp(); } function canvasSupport() { return Modernizr.canvas; } function canvasApp() { //是否支持CANVAS判断 if(!canvasSupport()) { return; } //取Canvasvar theCanvas = document.getElementById("canvasOne"); //获取绘图环境context var context = theCanvas.getContext("2d"); //绘图方法的实现 function drawScreen() {} //绘图方法调用执行 drawScreen(); } </script> </head> <body> <div style="position: absolute; top: 50px; left: 50px; border:1px solid #0000ff"> <canvas id="canvasOne" width="550" height="400"> Your browser does not support HTML5 Canvas. </canvas> </div> </body> </html>
以下所有实例代码,只要把上面的function drawScreen()替换掉即可!
Basic Colors 基本颜色
html5 中支持用字符串来代替RGB值的颜色主要有Basic Colors:
black = #000000 green = #008000 silver = #C0C0C0 lime=#00FF00
gray = #808080 olive = #808000 white = #FFFFFF yellow = #FFFF00
maroon = #800000 navy = #000080 red = #FF0000 blue = #0000FF
purple = #800080 teal = #008080 fuchsia = #FF00FF aqua = #00FFFF
例如:context.fillStyle="#000000"; 或者context.fillStyle="black";
context.strokeStyle="#COCOCO"; 或者context.strokeStyle="silver";
Gradient 渐变
Gradient主要有两种:Linear gradients线型渐变、Radial gradients径向渐变;
线型渐变包括有Linear horizontal gradients水平渐变、Vertical gradients垂直渐变、Diagonal gradients对角线渐变;
水平渐变(Linear horizontal gradient) function drawScreen() { var linearGradient=context.createLinearGradient(0,0,60,0); linearGradient.addColorStop(0,'rgb(255,0,0)'); linearGradient.addColorStop(0.5,'rgb(0,255,0)'); linearGradient.addColorStop(1,'rgb(0,0,255)'); context.fillStyle=linearGradient; context.fillRect(0, 0,30,40); context.fillRect(0, 40,60,40); context.fillRect(0, 80,90,40); context.fillRect(0, 120,120,40); context.fillRect(25, 160,150,40); }
实例效果:
context.createLinearGradient(x1,y1,x2,y2)该方法用于创建线向渐变对象,包括四个参数:渐变起始点的坐标(x1,y1),渐变结束点的坐标(x2,y2);
在上在例子中,.createLinearGradient(0,0,100,0);两个点的Y坐标都是0,表示是水平渐变;
若是.createLinearGradient(0,0,0,100);两个点的X坐标都是0,Y坐标在发生变化,则表示为垂直渐变;
若是.createLinearGradient(0,0,100,100);同表示对角线线向渐变;
.addColorStop(position,'rgb')该方法是为渐变添加颜色;包括二个参数:代表颜色要使用的位置(position),第二个代表颜色的rgb值;
其中,position值的范围是[0.0---1.0],我们可以理解为定义的渐变范围的一个百分比表示;
context.fillStyle用来设置填充颜色或者渐变风格;
Linear gradient渐变也可用于描边时使用,设置线框的风格即可:strokeStyle
水平渐变 边框 function drawScreen() { var linearGradient = context.createLinearGradient(0, 0, 60, 0); linearGradient.addColorStop(0,'rgb(255,0,0)'); linearGradient.addColorStop(.5,'rgb(0,255,0)'); linearGradient.addColorStop(1,'rgb(0,0,255)'); context.strokeStyle = linearGradient; context.strokeRect(0, 0,60,60); }
径向渐变Radial gradients
径向渐变能过