Maison  >  Article  >  interface Web  >  Le canevas JavaScript HTML5 implémente le dessin d'hyperliens sur les images

Le canevas JavaScript HTML5 implémente le dessin d'hyperliens sur les images

小云云
小云云original
2017-12-09 14:42:231886parcourir

Cet article présente principalement le canevas JavaScript html5 pour réaliser en détail le dessin d'hyperliens sur des images. Il a une certaine valeur de référence. J'espère que cela pourra aider tout le monde.

L'exemple de cet article partage le code spécifique pour dessiner des hyperliens sur des images en utilisant le canevas html5 pour votre référence. Le contenu spécifique est le suivant

1. >

<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(&#39;canvasFile&#39;), 
      ctx = canvas.getContext(&#39;2d&#39;), 
      img = new Image; 
    var btnDone = document.getElementById(&#39;btnDone&#39;); 
    var btnRedo = document.getElementById(&#39;btnRedo&#39;); 
 
 
    ctx.strokeStyle = &#39;#FF0000&#39;; 
 
    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 = &#39;red&#39;; 
      ctx.fill(); 
      ctx.lineWidth = 2; 
      ctx.strokeStyle = &#39;#FF0000&#39;; 
      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(&#39;touchmove&#39;, touchmove, false); 
      canvas.addEventListener(&#39;touchend&#39;, 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(&#39;canvasFile&#39;).toDataURL("image/jpeg"); 
      image = image.replace(&#39;data:image/jpeg;base64,&#39;, &#39;&#39;); 
      $("#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(); 
    }
Recommandations associées :


Explication détaillée de js pour déclencher automatiquement les instances de lien hypertexte lorsque la page est chargée

Résumé de l'utilisation des instances de lien hypertexte en html

Paramètre styles de liens hypertextes en html et css Résumé des méthodes

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn