1、时钟:
doctype html>
<html>
<head>head>
<body>
<canvas id="clock" width="500" height="500">
您的浏览器不支持canvas标签,无法看到时钟
canvas>
<script>
var clock=document.getElementById('clock');
var cxt=clock.getContext('2d');
/*
1、获取画布
2、画图时首先需要设置画笔颜色,画笔画出的宽度。
3、开始路径。
4、画笔操作,比如画直线,矩形等。
5、关闭路径。
6、图像已经出来了,那么可以进行填充等。例如给圆填充颜色。
7、显示前面画出的结果。
*/
function drawClock(){
//清除画布
cxt.clearRect(0,0,500,500);
var now =new Date();
var sec=now.getSeconds();
var min=now.getMinutes();
var hour=now.getHours();
//小时必须获取浮点类型(小时+分数转化成的小时)
hour=hour+min/60;
//问题 19:23:30
//将24小时进制转换为12小时
hour=hour>12?hour-12:hour;
//表盘(蓝色)
cxt.lineWidth=10;
cxt.strokeStyle="blue";
cxt.beginPath();
cxt.arc(250,250,200,0,360,false);
cxt.closePath();
cxt.fillStyle="#abcdef";
cxt.fill();
cxt.stroke();
//刻度
//时刻度
for(var i=0;i<12;i++){
cxt.save();
//设置时针的粗细
cxt.lineWidth=7;
//设置时针的颜色
cxt.strokeStyle="#000";
//先设置0,0点
cxt.translate(250,250);
//再设置旋转角度
cxt.rotate(i*30*Math.PI/180);//角度*Math.PI/180=弧度
cxt.beginPath();
cxt.moveTo(0,-170);
cxt.lineTo(0,-190);
cxt.closePath();
cxt.font="12px 宋体";//css font属性
cxt.fillText(i+"",0,-170);
cxt.stroke();
cxt.restore();
}
//分刻度
for(var i=0;i<60;i++){
cxt.save();
//设置分刻度的粗细
cxt.lineWidth=5;
//设置颜色(使用时刻度的颜色)
cxt.strokeStyle="#000";
//设置或者重置画布的0,0点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(i*6*Math.PI/180);
//画分针刻度
cxt.beginPath();
cxt.moveTo(0,-180);
cxt.lineTo(0,-190);
cxt.closePath();
cxt.stroke();
cxt.restore();
}
//时针
cxt.save();
//设置时针风格
cxt.lineWidth=7;
//设置时针的颜色
cxt.strokeStyle="#000";
//设置异次元空间的0,0点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(hour*30*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-140);
cxt.lineTo(0,10);
cxt.closePath();
cxt.stroke();
cxt.restore();
//分针
cxt.save();
//设置分针的风格
cxt.lineWidth=5;
cxt.strokeStyle="#000";
//设置异次元空间分针画布的圆心
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(min*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-160);
cxt.lineTo(0,15);
cxt.closePath();
cxt.stroke();
cxt.restore();
//秒针
cxt.save();
//设置秒针的风格
//颜色红色
cxt.strokeStyle="red";
//粗细 3像素
cxt.lineWidth=3;
//重置0,0点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(sec*6*Math.PI/180);
//画图
cxt.beginPath();
cxt.moveTo(0,-170);
cxt.lineTo(0,20);
cxt.closePath();
cxt.stroke();
//画出时针、分针、秒针的交叉点、
cxt.beginPath();
cxt.arc(0,0,5,0,360,false);
cxt.closePath();
//设置填充样式
cxt.fillStyle="gray";
cxt.fill();
//设置笔触样式(秒针已设置)
cxt.stroke();
//设置秒针前段的小圆点
cxt.beginPath();
cxt.arc(0,-150,5,0,360,false);
cxt.closePath();
//设置填充样式
cxt.fillStyle="gray";
cxt.fill();
//设置笔触样式(秒针已设置)
cxt.stroke();
cxt.restore();
}
//使用setInterval(代码,毫秒时间) 让时钟动起来
drawClock();
setInterval(drawClock,1000);
script>
body>
html>
2、太阳系
doctype html>
<html>
<head>head>
<body>
<canvas id="canvas" width="1000" height="1000" style="background:#000">
您的浏览器不支持canvas标签
canvas>
<script>
//设置2d绘图环境
var cxt=document.getElementById('canvas').getContext('2d');
//轨道
function drawTrack(){
for(var i=0;i<8;i++){
cxt.beginPath();
cxt.arc(500,500,(i+1)*50,0,360,false);
cxt.closePath();
//设置笔触的颜色
cxt.strokeStyle="#fff";
cxt.stroke();
}
}
drawTrack();
//星球
function Star(x,y,radius,cycle,sColor,eColor){
//画出星球需要哪些属性
//星球的坐标点
this.x=x;
this.y=y;
//星球的半径
this.radius=radius;
//公转周期
this.cycle=cycle;
//星球的颜色(开始色,结束色)
this.sColor=sColor;
this.eColor=eColor;
//新建一个渐变颜色空对象
this.color=null;
//设置一个计时器
this.time=0;
this.draw=function(){
//保存之前的画布内容
cxt.save();
//重置0,0坐标点
cxt.translate(500,500);
//设置旋转角度
cxt.rotate(this.time*(360/this.cycle)*Math.PI/180);
//画星球
cxt.beginPath();
cxt.arc(this.x,this.y,this.radius,0,360,false);
cxt.closePath();
//设置星球的填充颜色
//新建渐变对象
this.color=cxt.createRadialGradient(this.x,this.y,0,this.x,this.y,this.radius);
//设置渐变效果
this.color.addColorStop(0,this.sColor);//渐变开始点和颜色
this.color.addColorStop(1,this.eColor);//渐变结束点和颜色
cxt.fillStyle=this.color;//将渐变对象复制给填充画笔
//填充星球
cxt.fill();
//恢复之前保存的画布内容
cxt.restore();
//执行完毕之后时间增加
this.time+=1;
}
}
//创建一个太阳对象的构造函数
function Sun(){
Star.call(this,0,0,20,0,"#F00","#f90");
}
//创建一个水星的对象构造方法
function Mercury(){
Star.call(this,0,-50,10,87.70,"#A69697","#5C3E40");
}
//创建一个金星的对象构造方法
function Venus(){
Star.call(this,0,-100,10,224.701,"#C4BBAC","#1F1315");
}
//创建一个地球的对象构造方法
function Earth(){
Star.call(this,0,-150,10,365.224,"#78B1E8","#050C12");
}
//创建一个火星的对象构造方法
function Mars(){
Star.call(this,0,-200,10,686.98,"#CEC9B6","#76422D");
}
//创建一个木星的对象构造方法
function Jupiter(){
Star.call(this,0,-250,10,4332.589,"#C0A48E","#322222");
}
//创建一个土星的对象构造方法
function Saturn(){
Star.call(this,0,-300,10,10759.5,"#F7F9E3","#5C4533");
}
//创建一个天王星的对象构造方法
function Uranus(){
Star.call(this,0,-350,10,30799.095,"#A7E1E5","#19243A");
}
//创建一个天王星的对象构造方法
function Neptune(){
Star.call(this,0,-400,10,60152,"#0661B2","#1E3B73");
}
//创建太阳对象实例
var sun=new Sun();
//创建水星对象实例
var water=new Mercury();
//创建金星对象实例
var gold=new Venus();
//创建一个地球对象实例
var diqiu=new Earth();
//创建一个火星对象实例
var fire=new Mars();
//创建一个木星对象实例
var wood=new Jupiter();
//创建一个土星对象实例
var soil=new Saturn();
//创建一个天王星对象实例
var god=new Uranus();
//创建一个海王星对象实例
var sea=new Neptune();
function move(){
//清除画布
cxt.clearRect(0,0,1000,1000);
//画出轨道
drawTrack();
//画出每个星球
sun.draw();
water.draw();
gold.draw();
diqiu.draw();
fire.draw();
wood.draw();
soil.draw();
god.draw();
sea.draw();
}
//使个星球进行运动
setInterval(move,10);
script>
body>
html>
3、简单的画图软件
css3样式:
/*页面公共属性设置*/ *{padding:0;margin:0;list-style:none;} body{background:#ABCDEF} /*页面顶部属性设置*/ #header{width:900px;height:80px;font-size:40px;margin:0 auto;text-align:center;line-height:80px} /*页面中间部分(画图板)属性*/ #content{width:880px;height:550px;background:gray;margin:0 auto;padding:10px} #tool{height:150px;text-align:center} #tool li{float:left;width:175px;height:140px;background:#ccc;border-right:1px solid red} #image{text-align:left;padding:20px} #image li{height:30px;width:100px;list-style:square inside;border:0} #image li button{background:gray;border:1px solid #000} #image li button:hover{background:gray;border:1px solid #FFF} #means,#shape{padding:20px} #means li,#shape li{height:20px;width:40px;border:1px solid #000;margin-bottom:10px} #means li:hover,#shape li:hover{height:20px;width:40px;border:1px solid #fff;margin-bottom:10px} #means img,#shape img{height:20px;width:20px} #size{padding:10px} #size li{height:20px;width:120px;border:1px solid #ccc} #size li:hover{height:20px;width:120px;border:1px solid #FFF} #color{padding:25px} #color li{width:20px;height:20px;border:1px solid #000;margin-bottom:10px;margin-right:3px} #color li:hover{width:20px;height:20px;border:1px solid #fff;margin-bottom:10px;margin-right:3px} #color #red{background:red} #color #green{background:green} #color #blue{background:blue} #color #yellow{background:yellow} #color #white{background:white} #color #black{background:black} #color #pink{background:pink} #color #purple{background:purple} #color #cyan{background:cyan} #color #orange{background:orange} #canvas{background:white} #canvas:hover{cursor:crosshair } /*页面底部属性设置*/ #footer{width:900px;height:30px;margin:0 auto;text-align:center}
js文件:
var canvas=document.getElementById('canvas'); var cxt=canvas.getContext('2d'); //获取工具按钮的标签 //获取画笔标签 var Brush=document.getElementById('means_brush'); //获取橡皮标签 var Eraser=document.getElementById('means_eraser'); //获取油漆桶标签 var Paint=document.getElementById('means_paint'); //获取吸管标签 var Straw=document.getElementById('means_straw'); //获取文本标签 var Text=document.getElementById('means_text'); //获取放大镜标签 var Magnifier=document.getElementById('means_magnifier'); //获取形状按钮的标签 //获取画线标签 var Line=document.getElementById('shape_line'); //获取画圆圈的标签 var Arc=document.getElementById('shape_arc'); //获取画方框的标签 var Rect=document.getElementById('shape_rect'); //获取画多标签的标签 var Poly=document.getElementById('shape_poly'); //获取画圆形(填充) var ArcFill=document.getElementById('shape_arcfill'); //获取画矩形的标签 var RectFill=document.getElementById('shape_rectfill'); //把12个工具和形状标签放到一个数组中 var actions=[Brush,Eraser,Paint,Straw,Text,Magnifier,Line,Arc,Rect,Poly,ArcFill,RectFill]; //获取线宽按钮 var Line_1=document.getElementById('width_1'); var Line_3=document.getElementById('width_3'); var Line_5=document.getElementById('width_5'); var Line_8=document.getElementById('width_8'); //把4中线宽对象放到一个数组中 var widths=[Line_1,Line_3,Line_5,Line_8]; //获取颜色按钮 var ColorRed=document.getElementById('red'); var ColorGreen=document.getElementById('green'); var ColorBlue=document.getElementById('blue'); var ColorYellow=document.getElementById('yellow'); var ColorWhite=document.getElementById('white'); var ColorBlack=document.getElementById('black'); var ColorPink=document.getElementById('pink'); var ColorPurPle=document.getElementById('purple'); var ColorCyan=document.getElementById('cyan'); var ColorOrange=document.getElementById('orange'); //把10中颜色标签对象放到一个数组中 var colors=[ColorRed,ColorGreen,ColorBlue,ColorYellow,ColorWhite,ColorBlack,ColorPink,ColorPurPle,ColorCyan,ColorOrange]; //设置初始值 //默认选中画笔工具 drawBrush(0); //默认设置颜色 setColor(ColorRed,0); //设置默认线宽 setLineWidth(0); //状态设置函数 function setStatus(Arr,num,type){ for(var i=0;i){ //设置选中的标签改变CSS属性 if(i==num){ //设置改变CSS的样式是背景色还是边框 if(type==1){ Arr[i].style.background="yellow"; }else{ Arr[i].style.border="1px solid #fff"; } }else{//设置未选中的组中的其他标签改变颜色 if(type==1){ Arr[i].style.background="#ccc"; }else{ Arr[i].style.border="1px solid #000"; } } } } //设置图像功能函数 保存图片 清空画布 function saveimg(){ var imgdata=canvas.toDataURL(); var b64=imgdata.substring(22); //alert(b64); //将form表单中的隐藏表单 赋值(值就是我们获取的b64) var data=document.getElementById('data'); data.value=b64; //将表单提交到后台//http://localhost/down.php var form=document.getElementById('myform'); form.submit(); } //清空画布 function clearimg(){ //画布清除方法 cxt.clearRect(0,0,880,400); } //列出所有的按钮对应的函数 //铅笔工具函数 function drawBrush(num){ setStatus(actions,num,1); var flag=0;//设置标志位->检测鼠标是否按下 canvas.οnmοusedοwn=function(evt){ evt=window.event||evt; var startX=evt.pageX-this.offsetLeft; var startY=evt.pageY-this.offsetTop; cxt.beginPath(); cxt.moveTo(startX,startY); flag=1; } //鼠标移动的时候->不同的绘图(获取鼠标的位置) canvas.οnmοusemοve=function(evt){ evt=window.event||evt; var endX=evt.pageX-this.offsetLeft; var endY=evt.pageY-this.offsetTop; //判断一下鼠标是否按下 if(flag){ //移动的时候设置路径并且画出来 cxt.lineTo(endX,endY); cxt.stroke(); } } //鼠标抬起的时候结束绘图 canvas.οnmοuseup=function(){ flag=0; } //鼠标移出canvas的时候必须取消画图操作 canvas.οnmοuseοut=function(){ flag=0; } } var eraserFlag=0;//设置橡皮擦的状态标志位 //橡皮工具函数 function drawEraser(num){ setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; var eraserX=evt.pageX-this.offsetLeft; var eraserY=evt.pageY-this.offsetTop; //canvas擦出方法 cxt.clearRect(); cxt.clearRect(eraserX-cxt.lineWidth,eraserY-cxt.lineWidth,cxt.lineWidth*2,cxt.lineWidth*2); eraserFlag=1; } //随着鼠标移动不停地擦出 canvas.οnmοusemοve=function(evt){ evt=window.event||evt; var eraserX=evt.pageX-this.offsetLeft; var eraserY=evt.pageY-this.offsetTop; // 擦除方法 if(eraserFlag){//判断鼠标左键是否按下(按下的情况下拖动鼠标才能删除) cxt.clearRect(eraserX-cxt.lineWidth,eraserY-cxt.lineWidth,cxt.lineWidth*2,cxt.lineWidth*2); } } //抬起鼠标按键 清除擦出的状态位 变成0 canvas.οnmοuseup=function(){ eraserFlag=0; } //抬起鼠标移出画布 清除擦出的状态位 变成0 canvas.οnmοuseοut=function(){ eraserFlag=0; } } //油漆桶工具函数 function drawPaint(num){ setStatus(actions,num,1); canvas.onmousedown=function(){ //把画布涂成指定的颜色->画一个填充颜色的矩形 cxt.fillRect(0,0,880,400); } canvas.onmouseup=null; canvas.onmousemove=null; canvas.onmouseout=null; } //吸管工具函数 function drawStraw(num){ setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; var strawX=evt.pageX-this.offsetLeft; var strawY=evt.pageY-this.offsetTop; //获取该点坐标处的颜色信息 //获取图像信息的方法getImageData(开始点X,开始点Y,宽度,高度) var obj=cxt.getImageData(strawX,strawY,1,1); //alert(obj.data[3]);//ImageData对象 //obj.data=[红,绿,蓝色,透明度]//1像素的数据 //注意:在data数组中,每4个数组元素表示canvas画布中的一个像素点, //这4个元素的取值范围都是0-255 /*obj.data=[ 红,绿,蓝色,透明度, 红,绿,蓝色,透明度, 红,绿,蓝色,透明度, 红,绿,蓝色,透明度, 红,绿,蓝色,透明度, 红,绿,蓝色,透明度, 红,绿,蓝色,透明度, 红,绿,蓝色,透明度, ]//多像素的数据 */ //红色的RGB(255,0,0) //绿色的RGB(0,255,0); var color='rgb('+obj.data[0]+','+obj.data[1]+','+obj.data[2]+')'; //将吸管吸出的颜色设定到我们的应用中 cxt.strokeStyle=color; cxt.fillStyle=color; //颜色吸取吸取之后自动选中画笔工具 drawBrush(0); } //取消移动事件 、鼠标抬起事件、鼠标移出事件 canvas.οnmοusemοve=null; canvas.onmouseup=null; canvas.onmouseout=null; } //文本工具函数 function drawText(num){ setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; //获取鼠标点击时的位置 var textX=evt.pageX-this.offsetLeft; var textY=evt.pageY-this.offsetTop; //alert(textX+'------'+textY); //获取用户输入的信息 //window.prompt(对话框提示,默认值); var userVal=window.prompt('请在这里输入文字',''); //alert(userVal); //将用户输入的文字写到画布中对应的坐标点上。 if(userVal!=null){ cxt.fillText(userVal,textX,textY); } } canvas.onmousemove=null; canvas.onmouseup=null; canvas.onmouseout=null; } //放大镜工具函数 function drawMagnifier(num){ setStatus(actions,num,1); //用户输入的数据大小 var scale=window.prompt('请输入要放大的百分比[只能是整型]','100'); //吧数据转成对应canvas画布的大小 var scaleW=880*scale/100; var scaleH=400*scale/100; //将数据设置到对应HTML标签上 canvas.style.width=parseInt(scaleW)+'px'; canvas.style.height=parseInt(scaleH)+'px'; } //线形状函数 function drawLine(num){ setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; //获取起始点的坐标(相对于canvas画布的) //先获取鼠标距离页面顶端的距离和左端的距离 //evt.pageY evt.pageX //获取当前画布相对页面顶端和左端的距离 //this.offectTop this.offsetLeft //计算当前鼠标相对于canvas画布的距离(以canvas的左上角为0,0) var startX=evt.pageX-this.offsetLeft; var startY=evt.pageY-this.offsetTop; //设置直线的开始点 cxt.beginPath();//尽量写上开始新路径 cxt.moveTo(startX,startY); } canvas.onmousemove=null;//注销掉其他工具注册时间 canvas.οnmοuseοut=null;// //鼠标按键抬起的时候 canvas.οnmοuseup=function(evt){ //计算鼠标抬起时鼠标相对于画布的坐标 var endX=evt.pageX-this.offsetLeft; var endY=evt.pageY-this.offsetTop; //设置路径吧开始点和结束点连接起来,然后进行绘图 cxt.lineTo(endX,endY); cxt.closePath(); cxt.stroke(); } } //将变量设置为全局变量(如果是局部变量在其他的函数中无法调用) var arcX=0; var arcY=0; //圆形形状函数 function drawArc(num){ setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; //获取圆心的位置 arcX=evt.pageX-this.offsetLeft; arcY=evt.pageY-this.offsetTop; } canvas.onmouseup=function(evt){ evt=window.event||evt; //获取半径(目的) //实际获取的是一个坐标 var endX=evt.pageX-this.offsetLeft; var endY=evt.pageY-this.offsetTop; //计算C的距离 var a=endX-arcX; var b=endY-arcY; //计算半径 var c=Math.sqrt(a*a+b*b); cxt.beginPath(); cxt.arc(arcX,arcY,c,0,360,false); cxt.closePath(); cxt.stroke(); } canvas.onmousemove=null;//注销掉鼠标移动时间 canvas.οnmοuseοut=null; } //设置矩形全局变量 var rectX=0; var rectY=0; //矩形形状函数 function drawRect(num){ setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; //获取矩形左上角(对角线的开始点) rectX=evt.pageX-this.offsetLeft; rectY=evt.pageY-this.offsetTop; } canvas.onmouseup=function(evt){ evt=window.event||evt; //先获取鼠标的当前坐标 var endX=evt.pageX-this.offsetLeft; var endY=evt.pageY-this.offsetTop; //计算矩形的宽高 var rectW=endX-rectX; var rectH=endY-rectY; //画出矩形 cxt.strokeRect(rectX,rectY,rectW,rectH); } canvas.onmousemove=null; canvas.onmouseout=null; } var polyX=0; var polyY=0; //多边形形状函数 function drawPoly(num){ setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; polyX=evt.pageX-this.offsetLeft; POLyY=evt.pageY-this.offsetTop; } canvas.onmouseup=function(evt){ evt=window.event||evt; var endX=evt.pageX-this.offsetLeft; var endY=evt.pageY-this.offsetTop; cxt.beginPath(); //将画笔移动到右下角的顶点 cxt.moveTo(endX,endY); //计算左下角的顶点坐标 var lbX=2*polyX-endX; var lbY=endY; cxt.lineTo(lbX,lbY); //设置第三个顶点的坐标 var tmpC=2*(endX-polyX); var tmpA=endX-polyX; var tmpB=Math.sqrt(tmpC*tmpC-tmpA*tmpA); //计算最上面顶点坐标 //endY-tmpB 定点的Y坐标 polyX是顶点的X坐标 //画到顶点 cxt.lineTo(polyX,endY-tmpB); //封闭路径->画出来 cxt.closePath(); cxt.stroke(); } canvas.onmousemove=null; canvas.onmouseout=null; } //圆形填充形状函数 function drawArcFill(num){ setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; //获取圆心的位置 arcX=evt.pageX-this.offsetLeft; arcY=evt.pageY-this.offsetTop; } canvas.onmouseup=function(evt){ evt=window.event||evt; //获取半径(目的) //实际获取的是一个坐标 var endX=evt.pageX-this.offsetLeft; var endY=evt.pageY-this.offsetTop; //计算C的距离 var a=endX-arcX; var b=endY-arcY; //计算半径 var c=Math.sqrt(a*a+b*b); cxt.beginPath(); cxt.arc(arcX,arcY,c,0,360,false); cxt.closePath(); cxt.fill(); } canvas.onmousemove=null;//注销掉鼠标移动时间 canvas.οnmοuseοut=null; } //矩形填充形状函数 function drawRectFill(num){ setStatus(actions,num,1); setStatus(actions,num,1); canvas.onmousedown=function(evt){ evt=window.event||evt; //获取矩形左上角(对角线的开始点) rectX=evt.pageX-this.offsetLeft; rectY=evt.pageY-this.offsetTop; } canvas.onmouseup=function(evt){ evt=window.event||evt; //先获取鼠标的当前坐标 var endX=evt.pageX-this.offsetLeft; var endY=evt.pageY-this.offsetTop; //计算矩形的宽高 var rectW=endX-rectX; var rectH=endY-rectY; //画出矩形 cxt.fillRect(rectX,rectY,rectW,rectH); } canvas.onmousemove=null; canvas.onmouseout=null; } //线宽设置函数 function setLineWidth(num){ setStatus(widths,num,1); switch(num){ case 0: cxt.lineWidth=1; break; case 1: cxt.lineWidth=3; break; case 2: cxt.lineWidth=5; break;//第14讲补充的break 原因:遗漏 case 3: cxt.lineWidth=8; break; default: cxt.lineWidth=1; } } //颜色设置函数 function setColor(obj,num){ setStatus(colors,num,0); //设置画笔颜色和填充颜色 cxt.strokeStyle=obj.id; cxt.fillStyle=obj.id; }
html文件:
doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>HTML5在线画图板title>
<link href="canvas.css" type="text/css" rel="stylesheet" />
head>
<body>
<header id="header">HTML5在线画板header>
<section id="content">
<ul id="tool">
<li>
<h3>图像h3>
<hr />
<ul id="image">
<li id="saveimg">
<form id="myform" action="http://localhost/down.php" method="post">
<input type="hidden" id="data" name="data" value="" />
<button onclick="saveimg()" type="button">保存图片button>
form>
li>
<li id="clearimg"><button onclick="clearimg()">清空画板button>li>
ul>
li>
<li>
<h3>工具h3>
<hr />
<ul id="means">
<li id="means_brush" onclick="drawBrush(0)">
<img src="images/Brush.png" />
li>
<li id="means_eraser" onclick="drawEraser(1)">
<img src="images/Eraser.png" />
li>
<li id="means_paint" onclick="drawPaint(2)">
<img src="images/Paint.png" />
li>
<li id="means_straw" onclick="drawStraw(3)">
<img src="images/Straw.png" />
li>
<li id="means_text" onclick="drawText(4)">
<img src="images/text.png" />
li>
<li id="means_magnifier" onclick="drawMagnifier(5)"><img src="images/Magnifier.png" />li>
ul>
li>
<li>
<h3>形状h3>
<hr />
<ul id="shape">
<li id="shape_line" onclick="drawLine(6)">
<img src="images/line.png" />
li>
<li id="shape_arc" onclick="drawArc(7)">
<img src="images/arc.png" />
li>
<li id="shape_rect" onclick="drawRect(8)">
<img src="images/rect.png" />
li>
<li id="shape_poly" onclick="drawPoly(9)">
<img src="images/poly.png" />
li>
<li id="shape_arcfill" onclick="drawArcFill(10)">
<img src="images/arcfill.png" />
li>
<li id="shape_rectfill" onclick="drawRectFill(11)">
<img src="images/rectfill.png" />
li>
ul>
li>
<li>
<h3>线宽h3>
<hr />
<ul id="size">
<li id="width_1" onclick="setLineWidth(0)">
<img src="images/line1px.png" />
li>
<li id="width_3" onclick="setLineWidth(1)">
<img src="images/line3px.png" />
li>
<li id="width_5" onclick="setLineWidth(2)">
<img src="images/line5px.png" />
li>
<li id="width_8" onclick="setLineWidth(3)">
<img src="images/line8px.png" />
li>
ul>
li>
<li>
<h3>颜色h3>
<hr />
<ul id="color">
<li id="red" onclick="setColor(this,0)">li>
<li id="green" onclick="setColor(this,1)">li>
<li id="blue" onclick="setColor(this,2)">li>
<li id="yellow" onclick="setColor(this,3)">li>
<li id="white" onclick="setColor(this,4)">li>
<li id="black" onclick="setColor(this,5)">li>
<li id="pink" onclick="setColor(this,6)">li>
<li id="purple" onclick="setColor(this,7)">li>
<li id="cyan" onclick="setColor(this,8)">li>
<li id="orange" onclick="setColor(this,9)">li>
ul>
li>
ul>
<canvas id="canvas" width="880" height="400">
您的浏览器不支持canvas标签,请升级浏览器
canvas>
<script src="canvas.js">script>
section>
<footer id="footer">
<small>版权所有,盗版不究 @ LAMP兄弟连丛浩small>
footer>
body>
html>