最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript html5 canvas實現(xiàn)圖片上畫超鏈接

 更新時間:2017年10月20日 11:49:38   作者:_iorilan  
這篇文章主要為大家詳細介紹了JavaScript html5 canvas實現(xiàn)圖片上畫超鏈接,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了html5 canvas在圖片上畫超鏈接的具體代碼,供大家參考,具體內(nèi)容如下

1. html

<canvas id="canvasFile" style="margin-top:15px;" width="500" height="400"></canvas> 
<input type="button" id="btnRedo" value="Re-Draw" class="btn btn-warning"/> 

2. javascript

var photoW = 400; 
    var photoH = 300; 
    var photo; 
     
     
    // logic load image into canvas 
    // ... 
    // e.g.  
    // photo = new Image(); 
    // photo.onload = function() { 
    // draw photo into canvas when ready 
    // ctx.drawImage(photo, 0, 0, photoW, photoH); 
    // }; 
    // load photo into canvas 
    // photo.src = picURL; 
   
     
 // canvas highlight 
    var canvas = document.getElementById('canvasFile'), 
      ctx = canvas.getContext('2d'), 
      img = new Image; 
    var btnDone = document.getElementById('btnDone'); 
    var btnRedo = document.getElementById('btnRedo'); 
 
 
    ctx.strokeStyle = '#FF0000'; 
 
    function DrawDot(x, y) { 
      var centerX = x; 
      var centerY = y; 
      var radius = 2; 
 
 
      ctx.beginPath(); 
      ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false); 
      ctx.fillStyle = 'red'; 
      ctx.fill(); 
      ctx.lineWidth = 2; 
      ctx.strokeStyle = '#FF0000'; 
      ctx.stroke(); 
    } 
 
 
    function startDrawing() { 
      ctx.drawImage(img, 0, 0, photoW, photoH); 
      canvas.onmousemove = mousemoving; 
      canvas.onmousedown = mousedownhandle; 
      canvas.onmouseup = mouseuphandle; 
      // ## mobile events 
      //touchstart – to toggle drawing mode “on” 
      //touchend – to toggle drawing mode “off” 
      //touchmove – to track finger position, used in drawing 
      canvas.addEventListener('touchmove', touchmove, false); 
      canvas.addEventListener('touchend', mouseuphandle, false); 
 
 
      btnRedo.onclick = function (e) { 
        ctx.clearRect(0, 0, ctx.width, ctx.height); 
        ctx.drawImage(photo, 0, 0, photoW, photoH); 
        savedrawing(); 
      } 
    } 
    function savedrawing(e) { 
      var image = document.getElementById('canvasFile').toDataURL("image/jpeg"); 
      image = image.replace('data:image/jpeg;base64,', ''); 
      $("#imgNric1").val(image); 
    }; 
 

    function mousemoving(e) { 
      if (drawing) { 
        mousedownhandle(e); 
      } 
    } 
 
 
    var drawing = false; 
 
 
    function mousedownhandle(e) { 
      drawing = true; 
      var r = canvas.getBoundingClientRect(), 
        x = e.clientX - r.left, 
        y = e.clientY - r.top; 
 
 
      DrawDot(x, y); 
    }  
 
    function mouseuphandle(e) { 
      savedrawing(); 
      e.preventDefault(); 
      drawing = false; 
       
    } 
  
 
    //// mobile touch events 
    function touchmove(e) { 
      if (e.clientX > 800) { 
        mousedownhandle(e); 
        return; 
      } 
 
      var r = canvas.getBoundingClientRect(), 
        //event.changedTouches[0].pageX + ":" + event.changedTouches[0].pageY; 
        x = e.changedTouches[0].pageX - r.left, 
        y = e.changedTouches[0].pageY - r.top; 
 
 
      DrawDot(x, y); 
      e.preventDefault(); 
    } 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js數(shù)據(jù)類型轉(zhuǎn)換與流程控制操作實例分析

    js數(shù)據(jù)類型轉(zhuǎn)換與流程控制操作實例分析

    這篇文章主要介紹了js數(shù)據(jù)類型轉(zhuǎn)換與流程控制操作,結(jié)合實例形式分析了JavaScript數(shù)據(jù)類型轉(zhuǎn)換與流程控制相關(guān)原理、操作技巧與使用注意事項,需要的朋友可以參考下
    2019-12-12
  • javascript封裝的sqlite操作類實例

    javascript封裝的sqlite操作類實例

    這篇文章主要介紹了javascript封裝的sqlite操作類,可實現(xiàn)SQLite數(shù)據(jù)庫的初始化及執(zhí)行SQL語句的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • uniapp??微信跳轉(zhuǎn)至半屏的使用示例

    uniapp??微信跳轉(zhuǎn)至半屏的使用示例

    這篇文章主要介紹了uniapp??微信跳轉(zhuǎn)至半屏的使用示例,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08
  • js 原型對象和原型鏈理解

    js 原型對象和原型鏈理解

    本文主要介紹了js原型對象和原型鏈的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 淺談webpack組織模塊的原理

    淺談webpack組織模塊的原理

    這篇文章主要介紹了淺談webpack組織模塊的原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 小程序開發(fā)之模態(tài)框組件封裝

    小程序開發(fā)之模態(tài)框組件封裝

    這篇文章主要為大家詳細介紹了小程序開發(fā)之模態(tài)框組件封裝,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • js計算精度問題小結(jié)

    js計算精度問題小結(jié)

    js計算精度問題小結(jié),需要的朋友可以參考一下
    2013-04-04
  • JavaScript函數(shù)式編程示例分析

    JavaScript函數(shù)式編程示例分析

    函數(shù)式編程是一種編程范式,將整個程序都由函數(shù)調(diào)用以及函數(shù)組合構(gòu)成。 可以看成一條流水線,數(shù)據(jù)可以不斷地從一個函數(shù)的輸出流入另一個函數(shù)的輸入,最后輸出結(jié)果
    2022-10-10
  • es6數(shù)組includes()用法實例分析

    es6數(shù)組includes()用法實例分析

    這篇文章主要介紹了es6數(shù)組includes()用法,結(jié)合實例形式分析了es6數(shù)組includes()針對給定值判斷的相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下
    2020-04-04
  • JavaScript 中級筆記 第二章

    JavaScript 中級筆記 第二章

    對象是組成JavaScript的基本單元。本章將從JavaScript語言中最重要的幾個部分開始介紹:引用,函數(shù)重載,作用域,閉包和上下文。有了這些知識后,面向?qū)ο箝_發(fā)就將變得簡單。
    2009-09-09

最新評論

柳江县| 兴和县| 桂阳县| 黄冈市| 汤原县| 会昌县| 四平市| 堆龙德庆县| 息烽县| 秦安县| 大化| 张家川| 中阳县| 新巴尔虎左旗| 阳谷县| 济南市| 安徽省| 通渭县| 北海市| 茌平县| 永平县| 松潘县| 清流县| 镇坪县| 司法| 扶余县| 辽宁省| 永宁县| 龙门县| 汝州市| 丹东市| 彰武县| 延津县| 汝南县| 财经| 格尔木市| 闵行区| 从化市| 台中市| 崇左市| 松桃|