话不多说,请看代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>first line</title>
<style type="text/css">
body{
background: #456E89;
}
.canvas {
height: 300px;
width: 300px;
margin: 0 auto;
font-family: arial;
}
</style>
</head>
<body>
<div class="canvas">
<canvas id="cvs" width="300" height="300"></canvas>
</div>
<script type="text/javascript">
var cvs = document.getElementById("cvs").getContext("2d");
function Anim(opt) { //初始化值
this.opt = opt;
}
//node 表示画布节点
//staX 表示开始x坐标
//staY 表示开始y坐标
//len表示终点坐标,
//timing表示运行的间隔时间,
//num表示坐标增长的大小
//direc表示判断绘制线条的方向,false表示X轴,ture表示Y轴
//lw表示线宽的大小
//color 表示绘制线条颜色
Anim.prototype.draw = function() { //绘制直线的线条
var opt = this.opt; //设置对象的属性
var adx = opt.staX;
var ady = opt.staY;
var that = {
x: opt.staX,
y: opt.staY
};
var Time = 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 = "200px arial";
cvs.fillText("L", 100, 200);
};
var line1 = new Anim({ //实例
Node: cvs,
color: "#fff",
staX: 114,
staY: 58,
len: 134,
timing: 50,
num: 1,
direc: false,
lw: 2
});
line1.draw(); //执行绘制
var line2 = new Anim({
Node: cvs,
color: "#fff",
staX: 115,
staY: 58,
len: 200,
timing: 20,
num: 1,
direc: true,
lw: 2
});
line2.draw();
var line3 = new Anim({
Node: cvs,
color: "#fff",
staX: 133,
staY: 184,
len: 58,
timing: 20,
num: 1,
direc: true,
lw: 2
});
line3.draw();
var line4 = new Anim({
Node: cvs,
color: "#fff",
staX: 132,
staY: 184,
len: 203,
timing: 35,
num: 1,
direc: false,
lw: 2
});
line4.draw();
var line5 = new Anim({
Node: cvs,
color: "#fff",
staX: 203,
staY: 199,
len: 115,
timing: 35,
num: 1,
direc: false,
lw: 2
});
line5.draw();
var line6 = new Anim({
Node: cvs,
color: "#fff",
staX: 203,
staY: 199,
len: 184,
timing: 50,
num: 1,
direc: true,
lw: 2
});
line6.draw();
var test = new Anim();//绘制文字实例
setTimeout(function () {
var num = 0;
var times = setInterval(function () {
num++;
var t = num/100;
if(t === 1){
clearInterval(times);
}
test.txt(t);
},50)
},3000)
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# canvas绘制动画
# canvas绘制直线
# JavaScript使用canvas绘制坐标和线
# 多说
# id
# div
# arial
# javascript
# script
# cvs
# margin
# width
# px
# family
# font
# auto
# var
# staY
# staX
# node
# num
# timing
# len
相关文章:
零服务器AI建站解决方案:快速部署与云端平台低成本实践
微信h5制作网站有哪些,免费微信H5页面制作工具?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
已有域名如何免费搭建网站?
网站制作软件有哪些,制图软件有哪些?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
建站主机功能解析:服务器选择与快速搭建指南
如何在IIS中新建站点并解决端口绑定冲突?
建站主机选虚拟主机还是云服务器更好?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
如何在局域网内绑定自建网站域名?
智能起名网站制作软件有哪些,制作logo的软件?
如何用y主机助手快速搭建网站?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
如何制作算命网站,怎么注册算命网站?
网站制作说明怎么写,简述网页设计的流程并说明原因?
C#怎么使用委托和事件 C# delegate与event编程方法
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
怀化网站制作公司,怀化新生儿上户网上办理流程?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
Python路径拼接规范_跨平台处理说明【指导】
佛山企业网站制作公司有哪些,沟通100网上服务官网?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
定制建站策划方案_专业建站与网站建设方案一站式指南
一键网站制作软件,义乌购一件代发流程?
非常酷的网站设计制作软件,酷培ai教育官方网站?
公众号网站制作网页,微信公众号怎么制作?
红河网站制作公司,红河事业单位身份证如何上传?
如何在阿里云虚拟主机上快速搭建个人网站?
装修招标网站设计制作流程,装修招标流程?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何快速完成中国万网建站详细流程?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
建站之星下载版如何获取与安装?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
建站中国官网:模板定制+SEO优化+建站流程一站式指南
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
长沙做网站要多少钱,长沙国安网络怎么样?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
七夕网站制作视频,七夕大促活动怎么报名?
香港服务器选型指南:免备案配置与高效建站方案解析
小型网站建站如何选择虚拟主机?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
开源网站制作软件,开源网站什么意思?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
*请认真填写需求信息,我们会在24小时内与您取得联系。