栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

canvas轨迹回放功能实现

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

canvas轨迹回放功能实现

本文通过json机构,HTML代码以及JS代码详细给大家分析了canvas轨迹回放功能实现的过程,以下是全部内容。

json结构

[
  {
    "path": [
      {
 "x": 82, 
 "y": 43
      }, 
      {
 "x": 83, 
 "y": 43
      }, 
      {
 "x": 84, 
 "y": 45
      }, 
      {
 "x": 86, 
 "y": 47
      }, 
      {
 "x": 86, 
 "y": 49
      }, 
      {
 "x": 86, 
 "y": 54
      }, 
      {
 "x": 86, 
 "y": 59
      }, 
      {
 "x": 86, 
 "y": 64
      }, 
      {
 "x": 86, 
 "y": 69
      }, 
      {
 "x": 86, 
 "y": 74
      }, 
      {
 "x": 86, 
 "y": 78
      }, 
      {
 "x": 86, 
 "y": 83
      }, 
      {
 "x": 86, 
 "y": 87
      }, 
      {
 "x": 86, 
 "y": 89
      }, 
      {
 "x": 86, 
 "y": 91
      }, 
      {
 "x": 86, 
 "y": 92
      }, 
      {
 "x": 86, 
 "y": 93
      }, 
      {
 "x": 86, 
 "y": 94
      }, 
      {
 "x": 86, 
 "y": 95
      }
    ]
  }, 
  {
    "path": [
      {
 "x": 129, 
 "y": 36
      }, 
      {
 "x": 129, 
 "y": 39
      }, 
      {
 "x": 129, 
 "y": 44
      }, 
      {
 "x": 129, 
 "y": 49
      }, 
      {
 "x": 129, 
 "y": 54
      }, 
      {
 "x": 129, 
 "y": 59
      }, 
      {
 "x": 128, 
 "y": 65
      }, 
      {
 "x": 127, 
 "y": 73
      }, 
      {
 "x": 125, 
 "y": 78
      }, 
      {
 "x": 125, 
 "y": 81
      }, 
      {
 "x": 124, 
 "y": 88
      }, 
      {
 "x": 123, 
 "y": 91
      }, 
      {
 "x": 123, 
 "y": 94
      }, 
      {
 "x": 123, 
 "y": 96
      }, 
      {
 "x": 123, 
 "y": 97
      }, 
      {
 "x": 123, 
 "y": 98
      }, 
      {
 "x": 123, 
 "y": 99
      }, 
      {
 "x": 122, 
 "y": 100
      }
    ]
  }
]

html

将json作为js文件引入,并将其赋值给全局变量testPath(引入方式按照实际项目要求来)


*{margin:0; padding:0;}
#test{border:1px solid #ccc; background: #eee; margin:20px 30px;}

js

$('#start').click(function(event) {
  var lineIndex = 0,pointIndex = 0,line2;
  var obj = document.getElementById('test');
  var cxt = obj.getContext('2d');
  cxt.lineWidth = 1;
  cxt.strokeStyle = 'red';
  cxt.lineCap = 'round';
  cxt.clearRect(0,0,600,200);
  function drawBegin(){
    cxt.beginPath();
    pointIndex=0;
    var intervalHandle = window.setInterval(function () {
      line2 = testPath[lineIndex].path[pointIndex];
      if (!line2) {
 window.clearInterval(intervalHandle);
 if (lineIndex < testPath.length - 1) {
   lineIndex = lineIndex + 1;
   drawBegin();
 }
      }else{
 if (pointIndex == 0) {
   cxt.moveTo(line2.x, line2.y);
 }
 pointIndex = pointIndex + 1;
 cxt.lineTo(line2.x, line2.y);
 cxt.stroke();
      }
    },0);
  }
  drawBegin();
});

以上就是本次文章的全部内容,如果大家在测试的时候还有什么疑问,可以在下方的留言区讨论。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/83308.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号