<!DOCTYPE> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>渐变</title> <script language="javascript" type="text/javascript"> window.onload=function(){ var mycan=document.getElementById("myCanvas"); var canxt=mycan.getContext("2d"); //在一个矩形中尝试做渐变 var mylinear=canxt.createLinearGradient(0,0, 150,50);// 创建一个线性渐变 mylinear.addColorStop(0,"red"); mylinear.addColorStop(0.5,"yellow"); mylinear.addColorStop(1,"green"); // 把渐变对象赋值给fillstyle,理解(和填充颜色联系起来,这里不同的就是纯色用渐变对象取代了,我们还是在对canxt操作),关键 canxt.fillStyle=mylinear; //绘制矩形 canxt.fillRect(0,0,150,50);//必不可少 //为文字创建一个渐变 var linearText=canxt.createLinearGradient(300,50,600,50); linearText.addColorStop(0,"#000"); linearText.addColorStop(0.5,"#abcdef"); linearText.addColorStop(1,"#fff"); canxt.fillStyle=linearText; canxt.font="30px Arial"; canxt.textBaseline="top";//文字对齐方式,在canxt中,要看实际效果 canxt.fillText("Linear canxt!!",300,50);//参数表示文字x,y轴的位置 // 对角线上的渐变 var fillColordiagonal = canxt.createLinearGradient(50,200, 100,450); // 渐变颜色 fillColordiagonal.addColorStop(0.2,"red"); fillColordiagonal.addColorStop(0.4,"black"); fillColordiagonal.addColorStop(0.6,"green"); fillColordiagonal.addColorStop(0.75,"yellow"); // 把渐变对象赋值给fillstyle canxt.fillStyle= fillColordiagonal; // 绘制矩形 canxt.fillRect(50,225, 100,250); // 绘制径向渐变 fillColorRadial = canxt.createRadialGradient(450,300,0, 450,300,200); //径向渐变——createradialGradient(x0,y0,r0,x1,y1,r1)——使用六个参数以一种圆形或是圆锥形的模式来组合两种或多种颜色。 //1. (x0,y0): 圆锥的第一个圆的中心 //2. r0:第一个圆的半径 //3. (x1,y1):圆锥的第二个圆的中心 //4. r1:第二个圆的半径 fillColorRadial.addColorStop(0.1, "#f00"); fillColorRadial.addColorStop(0.3, "#f66"); fillColorRadial.addColorStop(0.5, "#f6c"); fillColorRadial.addColorStop(0.7, "#fc0"); fillColorRadial.addColorStop(0.9, "#ff0"); canxt.fillStyle = fillColorRadial; canxt.rect(300,200,500,400);//x,y,l,w canxt.fill(); } </script> </head> <body> <p><canvas id="myCanvas" width="600" height="400"></canvas></p> </body> </html>