Maison > interface Web > Tutoriel H5 > Le canevas HTML5 implémente des flèches qui suivent les compétences du didacticiel rotation_html5 de la souris.

Le canevas HTML5 implémente des flèches qui suivent les compétences du didacticiel rotation_html5 de la souris.

WBOY
Libérer: 2016-05-16 15:51:42
original
2809 Les gens l'ont consulté

Les exemples de cet article sont partagés avec tout le monde

Code XML/HTMLCopier le contenu dans le presse-papiers
  1. >
  2. <html>
  3. <tête>
  4. <méta charset="utf- 8" />
  5. " Compatible X-ua "
  6. Contenu = " ie = bord " ///> <titre>canvas implémente des flèches qui suivent la rotation de la souris < /
  7. titre
  8. >  <style>
  9. *{padding : 0;marge : 0}
  10.  style>
  11.  
  12. tête>
  13. <corps>
  14. <toile largeur=
  15. "500"
  16. hauteur="500" style="bordure : 1px solide #555 ; affichage : bloc;marge : 0 auto ;">toile >  <script>
  17. var
  18. flèche=fonction () {
  19.  
  20. this.x=0
  21. this.y=0 ;
  22.  
  23. this.color="#f90"
  24.  
  25. this.rolation=0
  26. }    
  27.         var canvas=document.querySelector('canvas')   
  28.         var ctx=canvas.getContext('2d');   
  29.         arrow.prototype.draw=fonction (ctx) {   
  30.             ctx.save();   
  31.             ctx.translate(this.x,this.y);   
  32.             ctx.rotate(this.rolation)   
  33.             ctx.fillStyle=ce.color;   
  34.             ctx.beginPath();   
  35.             ctx.moveTo(0, 15);   
  36.             ctx.lineTo(-50, 15);   
  37.             ctx.lineTo(-50, -15);   
  38.             ctx.lineTo(0,-15);   
  39.             ctx.lineTo(0,-35);   
  40.             ctx.lineTo(50,0);   
  41.             ctx.lineTo(0,35);   
  42.             ctx.closePath()   
  43.             ctx.fill();   
  44.             ctx.restore();   
  45.         }   
  46.         var Flèche=nouveau arrow();   
  47.         Arrow.x=canvas.width/2;   
  48.         Arrow.y=canvas.height/2;   
  49.            
  50.         var c_x,c_y; //相对于canvas坐标的位置;   
  51.         var isMouseDown=false;   
  52.         Arrow.draw(ctx)   
  53.         canvas.addEventListener('mousedown',function(e) {   
  54.             isMouseDown=true;   
  55.         },faux)   
  56.         canvas.addEventListener('mousemove',function(e) {   
  57.             if(isMouseDown==true){   
  58.                 c_x=getPos(e).x-canvas.offsetLeft;   
  59.                 c_y=getPos(e).y-canvas.offsetTop;   
  60.                 //setInterval(drawFram,1000/60)   
  61.                 requestAnimationFrame(drawFram)   
  62.             }   
  63.         },faux)   
  64.         canvas.addEventListener('mouseup',function(e) {   
  65.             isMouseDown=false;   
  66.         },faux)   
  67.         function drawFram(){   
  68.             var dx=c_x-Arrow.x;   
  69.             var dy=c_y-Arrow.y;   
  70.             Arrow.rolation=Math.atan2(dy,dx);   
  71.             ctx.clearRect(0,0,canvas.width,canvas.height);   
  72.             Arrow.draw(ctx)   
  73.         }   
  74.         fonction getPos(e) {   
  75.             var souris={x:0,y:0}   
  76.             var ee=e||event;   
  77.         
  78.             if(e.pageX||e.pageY){   
  79.                 mouse.x=e.pageX;   
  80.                 mouse.y=e.pageY;   
  81.              }autre{
  82. mouse.x=e.pageX document.body.scrollLeft document.document.documentElement.scrollLeft
  83. mouse.y=e.pageY document.body.scrollTop document.document.documentElement.scrollTop
  84.                                                           
  85. retournez la souris;
  86.                                                              
  87.  
  88. script>  corps> html> Adresse DEMO :
http://codepen.io/jonechen/pen/eZpgWd

Pas de bêtises, passons directement à la DÉMO. Cet effet n'est pas compliqué à réaliser, mais il est aussi petit qu'un moineau et possède tous les organes internes impliqués. Les principaux points de connaissance impliqués sont : 1. Dessin de base du canevas ;

2. Surveillance de divers événements js ;

3. Animation js

4.

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.

Texte original :
http://www.cnblogs.com/jone-chen/p/5243439.html

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal