canvas绘制的直线动画
话不多说,请看代码:
<!DOCTYPEhtml>
<html>
<head>
<metacharset="UTF-8">
<title>firstline</title>
<styletype="text/css">
body{
background:#456E89;
}
.canvas{
height:300px;
width:300px;
margin:0auto;
font-family:arial;
}
</style>
</head>
<body>
<divclass="canvas">
<canvasid="cvs"width="300"height="300"></canvas>
</div>
<scripttype="text/javascript">
varcvs=document.getElementById("cvs").getContext("2d");
functionAnim(opt){//初始化值
this.opt=opt;
}
//node表示画布节点
//staX表示开始x坐标
//staY表示开始y坐标
//len表示终点坐标,
//timing表示运行的间隔时间,
//num表示坐标增长的大小
//direc表示判断绘制线条的方向,false表示X轴,ture表示Y轴
//lw表示线宽的大小
//color表示绘制线条颜色
Anim.prototype.draw=function(){//绘制直线的线条
varopt=this.opt;//设置对象的属性
varadx=opt.staX;
varady=opt.staY;
varthat={
x:opt.staX,
y:opt.staY
};
varTime=setInterval(function(){
opt.direc//判断绘制方向
?
opt.len>ady?ady+=opt.num:ady-=opt.num:
opt.len>adx?adx+=opt.num:adx-=opt.num;
if(adx==opt.len||ady==opt.len){//停止循环
clearInterval(Time);
}
opt.Node.beginPath();//开始绘制线条
opt.Node.moveTo(that.x,that.y);
opt.Node.lineTo(adx,ady);
opt.Node.lineWidth=opt.lw||1;
opt.Node.strokeStyle=opt.color;
opt.Node.stroke();
},opt.timing);
};
Anim.prototype.txt=function(opc){//绘制文字
cvs.beginPath();
cvs.fillStyle="rgba(255,255,255,"+opc+")";
cvs.font="200pxarial";
cvs.fillText("L",100,200);
};
varline1=newAnim({//实例
Node:cvs,
color:"#fff",
staX:114,
staY:58,
len:134,
timing:50,
num:1,
direc:false,
lw:2
});
line1.draw();//执行绘制
varline2=newAnim({
Node:cvs,
color:"#fff",
staX:115,
staY:58,
len:200,
timing:20,
num:1,
direc:true,
lw:2
});
line2.draw();
varline3=newAnim({
Node:cvs,
color:"#fff",
staX:133,
staY:184,
len:58,
timing:20,
num:1,
direc:true,
lw:2
});
line3.draw();
varline4=newAnim({
Node:cvs,
color:"#fff",
staX:132,
staY:184,
len:203,
timing:35,
num:1,
direc:false,
lw:2
});
line4.draw();
varline5=newAnim({
Node:cvs,
color:"#fff",
staX:203,
staY:199,
len:115,
timing:35,
num:1,
direc:false,
lw:2
});
line5.draw();
varline6=newAnim({
Node:cvs,
color:"#fff",
staX:203,
staY:199,
len:184,
timing:50,
num:1,
direc:true,
lw:2
});
line6.draw();
vartest=newAnim();//绘制文字实例
setTimeout(function(){
varnum=0;
vartimes=setInterval(function(){
num++;
vart=num/100;
if(t===1){
clearInterval(times);
}
test.txt(t);
},50)
},3000)
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!