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

canvas軌跡回放功能實現(xiàn)

 更新時間:2017年12月20日 09:09:28   投稿:laozhang  
這篇文章主要介紹了canvas軌跡回放功能實現(xiàn)過程以及相關(guān)的代碼整理,跟著小編一起學(xué)習(xí)下吧。

本文通過json機構(gòu),HTML代碼以及JS代碼詳細給大家分析了canvas軌跡回放功能實現(xiàn)的過程,以下是全部內(nèi)容。

json結(jié)構(gòu)

[
  {
    "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(引入方式按照實際項目要求來)

<style>
*{margin:0; padding:0;}
#test{border:1px solid #ccc; background: #eee; margin:20px 30px;}
</style>
<p><button id="start">start</button></p>
<canvas id='test' width="600" height="200"></canvas>
<script type="text/javascript" src='js/jquery-2.1.4.min.js'></script>
<script type="text/javascript" src='js/number.js'></script>

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();
});

以上就是本次文章的全部內(nèi)容,如果大家在測試的時候還有什么疑問,可以在下方的留言區(qū)討論。

相關(guān)文章

  • Object.keys()、Object.values()、Object.entries()用法總結(jié)

    Object.keys()、Object.values()、Object.entries()用法總結(jié)

    本文主要介紹了Object.keys()、Object.values()、Object.entries()用法總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • JS使用Promise時常見的5個錯誤總結(jié)

    JS使用Promise時常見的5個錯誤總結(jié)

    Promise?提供了一種優(yōu)雅的方法來處理?JS?中的異步操作。這也是避免“回調(diào)地獄”的解決方案。然而,并沒有多少開發(fā)人員了解其中的內(nèi)容。因此,許多人在實踐中往往會犯錯誤。在本文中,介紹一下使用?promise?時的五個常見錯誤,希望大家能夠避免
    2022-11-11
  • 微信小程序表單驗證錯誤提示效果

    微信小程序表單驗證錯誤提示效果

    這篇文章主要為大家詳細介紹了微信小程序表單驗證錯誤提示效果,點擊確認發(fā)布不能為空錯誤提示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • js控制多圖左右滾動切換效果代碼分享

    js控制多圖左右滾動切換效果代碼分享

    這篇文章主要介紹了js控制多圖左右滾動切換效果,很實用的代碼,推薦給大家,有需要的小伙伴可以參考下。
    2015-08-08
  • Echarts柱狀圖修改柱子顏色漸變及柱子圓角效果實例

    Echarts柱狀圖修改柱子顏色漸變及柱子圓角效果實例

    在ECharts中,可以通過修改series.itemStyle.normal屬性來定制柱狀圖的柱子樣式,包括圓角和背景色漸變,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • JavaScript中break、continue和return的用法區(qū)別實例分析

    JavaScript中break、continue和return的用法區(qū)別實例分析

    這篇文章主要介紹了JavaScript中break、continue和return的用法區(qū)別,結(jié)合實例形式詳細對比分析了JavaScript中break、continue和return的基本功能、使用方法、區(qū)別與操作注意事項,需要的朋友可以參考下
    2020-03-03
  • 常用Javascript函數(shù)與原型功能收藏(必看篇)

    常用Javascript函數(shù)與原型功能收藏(必看篇)

    下面小編就為大家?guī)硪黄S肑avascript函數(shù)與原型功能收藏(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • javascript 靜態(tài)對象和構(gòu)造函數(shù)的使用和公私問題

    javascript 靜態(tài)對象和構(gòu)造函數(shù)的使用和公私問題

    靜態(tài)對象和構(gòu)造函數(shù)的使用區(qū)別 平常我們會經(jīng)常使用JSON形式,或者var obj=function(){}亦或function(){}這么幾種對象的構(gòu)建辦法,有時會認為這是等價的辦法,然而他們還有不同。
    2010-03-03
  • javascript 獲取元素樣式必殺技

    javascript 獲取元素樣式必殺技

    這篇文章主要介紹了javascript 獲取元素樣式必殺技,需要的朋友可以參考下
    2014-05-05
  • uniApp實現(xiàn)熱更新的思路與詳細過程

    uniApp實現(xiàn)熱更新的思路與詳細過程

    經(jīng)常在做app的時候,會有做熱更新的需求,這也是常用的更新app的一種手段,下面這篇文章主要給大家介紹了關(guān)于uniApp實現(xiàn)熱更新的思路與詳細過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11

最新評論