欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

canvas繪制的直線動畫

 更新時間:2017年01月23日 10:16:57   作者:webLS  
本文主要分享了canvas繪制的直線動畫的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧

話不多說,請看代碼:

<!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 表示畫布節(jié)點
 //staX 表示開始x坐標
 //staY 表示開始y坐標
 //len表示終點坐標,
 //timing表示運行的間隔時間, 
 //num表示坐標增長的大小 
 //direc表示判斷繪制線條的方向,false表示X軸,ture表示Y軸
 //lw表示線寬的大小 
 //color 表示繪制線條顏色
 Anim.prototype.draw = function() { //繪制直線的線條
 var opt = this.opt; //設(shè)置對象的屬性
 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) { //停止循環(huán)
  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(); //執(zhí)行繪制
 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>

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • ES6中async函數(shù)與await表達式的基本用法舉例

    ES6中async函數(shù)與await表達式的基本用法舉例

    async和await是我們進行Promise時的一個語法糖,async/await為了讓我們書寫代碼時更加流暢,增強了代碼的可讀性,下面這篇文章主要給大家介紹了關(guān)于ES6中async函數(shù)與await表達式的基本用法,需要的朋友可以參考下
    2022-07-07
  • 使用PBFunc在Powerbuilder中支付寶當面付款功能

    使用PBFunc在Powerbuilder中支付寶當面付款功能

    這篇文章主要介紹了使用PBFunc在Powerbuilder中支付寶當面付款功能的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • fetch 如何實現(xiàn)請求數(shù)據(jù)

    fetch 如何實現(xiàn)請求數(shù)據(jù)

    這篇文章主要介紹了fetch 如何實現(xiàn)請求數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • 微信小程序onLaunch異步,首頁onLoad先執(zhí)行?

    微信小程序onLaunch異步,首頁onLoad先執(zhí)行?

    這篇文章主要介紹了微信小程序onLaunch異步,首頁onLoad先執(zhí)行? 文章底部給大家介紹了小程序_onLaunch異步回調(diào)數(shù)據(jù)加載問題的兩種解決方案,需要的朋友可以參考下
    2018-09-09
  • Bootstrap按鈕下拉菜單組件詳解

    Bootstrap按鈕下拉菜單組件詳解

    這篇文章主要為大家詳細介紹了Bootstrap按鈕下拉菜單組件,感興趣的小伙伴們可以參考一下
    2016-05-05
  • window.open以post方式將內(nèi)容提交到新窗口

    window.open以post方式將內(nèi)容提交到新窗口

    最近在做web項目,碰到需要跨頁面?zhèn)鬟f參數(shù)的功能,就是那種需要把當前頁面的內(nèi)容帶到新開的子窗體中,以前的做法是傳一個id過去,然后在新窗口中去讀數(shù)據(jù)庫的內(nèi)容;比較有意思的是直接通過調(diào)用form的submit方法不能觸發(fā)onsubmit事件,查看了幫助文檔,必須手動的觸發(fā),否則只能看到頁面刷新而沒有打開新窗口
    2012-12-12
  • JavaScript判斷是否為數(shù)字的4種方法及效率比較

    JavaScript判斷是否為數(shù)字的4種方法及效率比較

    這篇文章主要介紹了JavaScript判斷是否為數(shù)字的4種方法及效率比較,本文直接給出判斷方法實現(xiàn)代碼及運行效率效果圖,方便大家選擇使用,需要的朋友可以參考下
    2015-04-04
  • 一個JavaScript去除字符串末尾的空白實例代碼

    一個JavaScript去除字符串末尾的空白實例代碼

    這是一個JavaScript去除字符串末尾的空白實例代碼,很簡單,但很實用,喜歡的朋友可以參考下
    2014-09-09
  • javaScript產(chǎn)生隨機數(shù)的用法小結(jié)

    javaScript產(chǎn)生隨機數(shù)的用法小結(jié)

    這篇文章主要介紹了javaScript產(chǎn)生隨機數(shù)的用法小結(jié),包括JavaScript Math.random()內(nèi)置函數(shù) ,Js 隨機數(shù)產(chǎn)生6位數(shù)字的代碼,需要的朋友可以參考下
    2018-04-04
  • Android 自定義view仿微信相機單擊拍照長按錄視頻按鈕

    Android 自定義view仿微信相機單擊拍照長按錄視頻按鈕

    這篇文章主要介紹了Android 自定義view仿微信相機單擊拍照長按錄視頻按鈕,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07

最新評論