国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

canvas繪制的直線動畫

2024-05-06 16:34:43
字體:
來源:轉載
供稿:網友

話不多說,請看代碼:

<!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>

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VeVb武林網!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平泉县| 鞍山市| 金寨县| 嘉定区| 武宣县| 安达市| 晋城| 兴安盟| 炉霍县| 万州区| 府谷县| 荔浦县| 高青县| 黔东| 静乐县| 菏泽市| 崇明县| 葵青区| 宜兰市| 区。| 广宁县| 建湖县| 武强县| 柳江县| 拜泉县| 瑞丽市| 修水县| 景泰县| 瑞昌市| 河源市| 云阳县| 镇巴县| 子洲县| 太白县| 吉木乃县| 莆田市| 永登县| 托克逊县| 建平县| 霍邱县| 东宁县|