suchen
HeimWeb-FrontendH5-TutorialTeilen Sie Beispiele für die Verwendung von HTML5 Canvas zum Erstellen von Tastatur- und Mausanimationen. HTML5-Tutorial-Fähigkeiten

Tastatur steuert die Bewegung des Balls

Wie wir alle wissen, handelt es sich bei der Animation, die wir sehen, tatsächlich um eine Reihe schneller Wechsel statischer Bilder, die dem bloßen Auge aufgrund visueller Nachbilder den visuellen Effekt von „bewegten Bildern“ verleihen. Nachdem Sie dies verstanden haben, wird das Zeichnen von Animationseffekten auf der Leinwand relativ einfach. Wir müssen zunächst nur eine bestimmte statische Grafik löschen und sie dann an einer anderen Stelle neu zeichnen. Wiederholen Sie diesen Vorgang, um die statische Grafik entlang einer bestimmten Flugbahn zu bewegen und einen Animationseffekt zu erzeugen.

Als nächstes zeichnen wir einen festen Ball auf die Leinwand und verwenden dann die Pfeiltasten auf der Tastatur, um die Bewegung des Balls zu steuern, um dynamische Effekte zu erzeugen. Der Beispielcode lautet wie folgt:

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. "UTF-8">
  2. HTML5-Leinwandzeichnung, Beispiel für einen beweglichen Ball
  3. "moveBall(event)"
  4. >
  5. "myCanvas"
  6. width=
  7. "400px"
  8. height="300px" style="border: 1px solid red;"> Ihr Browser unterstützt das Canvas-Tag nicht.
  9. >
  10. //Holen Sie sich das Canvas-Objekt (Canvas)
  11. var canvas = document.getElementById("myCanvas");
  12. //Stellt die Klasse der Kugel dar
  13. Funktion Ball(x, y, Radius, Geschwindigkeit){
  14. this.x = x || 10;//Die x-Koordinate der Kugel, der Standardwert ist 10
  15. this
  16. .y = y || 10 //Die y-Koordinate der Kugel, der Standardwert ist 10
  17. this
  18. .radius = radius || //Der Radius der Kugel, der Standardwert ist 10
  19. this
  20. .speed = speed || 5; //Die Bewegungsgeschwindigkeit des Balls, der Standardwert ist 5  
  21. //Nach oben verschieben
  22. dies
  23. .moveUp = Funktion(){
  24. dieses
  25. .y -= dieses.speed;  if
  26. (
  27. this.y //Überschreiten der Obergrenze verhindern
  28.                                                                                                                                 
  29.                                                               };
  30.  
  31. //Nach rechts bewegen
  32. dies
  33. .moveRight =
  34. Funktion
  35. (){
  36. this.x = this
  37. .speed;
  38. var maxX = canvas.width - this.radius;
  39. if(this.x > maxX){
  40.  
  41. //Überschreitung der rechten Grenze verhindern  dieses
  42. .x = maxX; 
  43. }
  44. };
  45.  
  46. //Nach links bewegen
  47. dies.moveLeft = Funktion(){
  48. dieses.x -= dieses.speed;
  49.  
  50. if(this.x //Überschreiten der linken Grenze verhindern
  51.  this
  52. .x =
  53. this.radius;                                                                };
  54.  
  55. //Nach unten bewegen
  56. dies.moveDown =
  57. Funktion
  58. (){ this.y =
  59. this
  60. .speed; var maxY = canvas.height - this
  61. .radius;
  62. if(this.y > maxY){
  63. //Überschreitung der Untergrenze verhindern
  64. dieses
  65. .y = maxY>                                                               };
  66. }
  67. //Zeichne den Ball
  68. Funktion drawBall(ball){
  69.  if(
  70. typeof ctx != "undefiniert"){
  71. ctx.beginPath(); ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2, false); ctx.fill();
  72. }
  73. }
  74. //Löschen Sie die Leinwand
  75. Funktion clearCanvas(){
  76.  if(typeof ctx != "undefiniert"){
  77. ctx.clearRect(0, 0, 400, 300);
  78. }
  79. }
  80. var ball = neu Ball();
  81. //Erkennen Sie einfach, ob der aktuelle Browser das Canvas-Objekt unterstützt, um Syntaxfehler in einigen Browsern zu vermeiden, die HTML5 nicht unterstützen
  82. if
  83. (canvas.getContext){ 
  84. //Erhalten Sie das entsprechende CanvasRenderingContext2D-Objekt (Pinsel)
  85. var
  86. ctx = canvas.getContext("2d"); drawBall(ball);
  87. }
  88. //Callback-Handler-Funktion für Onkeydown-Ereignis
  89. //Steuern Sie die Bewegung des Balls entsprechend den Tasten des Benutzers
  90. Funktion moveBall(event){
  91. Schalter(event.keyCode){
  92.  Fall 37: //Linke Pfeiltaste  
  93. ball.moveLeft();
  94. Pause;
  95.  
  96. Fall 38: //Richtungstaste nach oben  
  97. ball.moveUp();
  98. Pause;  
  99. Fall
  100. 39: //Rechtspfeiltaste   ball.moveRight();
  101. Pause
  102. ; Fall
  103. 40: 
  104. //Abwärtspfeiltaste ball.moveDown();
  105. Pause
  106. ;
  107. Standard: 
  108. //Andere Tastenoperationen reagieren nicht
  109. zurück;
  110. }
  111.  
  112. clearCanvas();
  113. //Löschen Sie zuerst die Leinwand
  114. drawBall(ball);
  115. //Den neuesten Ball zeichnen
  116. }
  117. Bitte verwenden Sie einen Browser, der HTML5 unterstützt, um die folgende Webseite zu öffnen, um den tatsächlichen Effekt zu sehen (verwenden Sie die Pfeiltasten zum Bewegen):
  118. Verwenden Sie die Leinwand, um einen beweglichen Ball zu zeichnen
  119. .
Clown Smiley Face
Sie müssen nur ein paar APIs verstehen und dann die erforderlichen Animationsparameter verwenden, um diese interessante Webanimation zu erstellen, die auf Ihre Bewegungen reagieren kann.

Der erste Schritt besteht darin, die Gesichtszüge zu zeichnen
Dieser Clown hat keine Ohren und Augenbrauen, daher sind nur noch drei Organe übrig, aber wir müssen seine beiden Augen separat zeichnen, sodass es insgesamt vier Teile gibt. Schauen wir uns zunächst den Code an.

Code zum Zeichnen des linken Auges



JavaScript-Code

Inhalt in die Zwischenablage kopieren

  1. var leftEye = new Kinetic.Line({
  2. x: 150,
  3. Punkte: [0, 200, 50, 190, 100, 200, 50, 210],
  4. Spannung: 0,5,
  5. geschlossen: wahr,
  6. Strich: 'weiß',
  7. StrokeWidth: 10
  8. });

Code zum Zeichnen des rechten Auges

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var rightEye = new Kinetic.Line({
  2. x: sw - 250,
  3. Punkte: [0, 200, 50, 190, 100, 200, 50, 210],
  4. Spannung: 0,5,
  5. geschlossen: wahr,
  6. Strich: 'weiß',
  7. StrokeWidth: 10
  8. });

Code zum Zeichnen der Nase

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var Nase = neu Kinetic.Line({
  2. Punkte: [240, 280, sw/2, 300, sw-240,280],
  3. Spannung: 0,5,
  4. geschlossen: wahr,
  5. Strich: 'weiß',
  6. StrokeWidth: 10
  7. });

Code zum Zeichnen des Mundes

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. varmouth = new Kinetic.Line({
  2. Punkte: [150, 340, sw/2, 380, sw - 150, 340, sw/2, sh],
  3. Spannung: 0,5,
  4. geschlossen: wahr,
  5. Strich: 'rot',
  6. StrokeWidth: 10
  7. });

Würden Sie enttäuscht sein? Es stellt sich heraus, dass es nur ein paar Zeilen Code sind. Ja, so einfach ist das. Ich glaube, Sie beginnen, sich sicher zu fühlen, dass Sie ein Web-Game-Animationsprogrammierer werden können

Erklären Sie kurz den obigen Code. Kinetic ist das von uns verwendete JS-Toolkit. Am Kopf der Seite müssen wir wie folgt darauf verweisen:

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. varmouth = new Kinetic.Line({
  2. Punkte: [150, 340, sw/2, 380, sw - 150, 340, sw/2, sh],
  3. Spannung: 0,5,
  4. geschlossen: wahr,
  5. Strich: 'rot',
  6. StrokeWidth: 10
  7. });
Die anderen sind mehrere wichtige Punkte, Linienelastizität, Farbe, Breite usw. Diese sind leicht zu verstehen.

Der zweite Schritt besteht darin, das Bild in Bewegung zu setzen

Der Grund, warum diese Animation attraktiv ist, liegt darin, dass sie auf Ihre Mausbewegungen reagieren und mit dem Benutzer interagieren kann. Dies ist der wichtigste Aspekt einer erfolgreichen Animation. Wenn Sie genau hinsehen, handelt es sich bei den Veränderungen in den Gesichtszügen des Clowns lediglich um Veränderungen der Form: Die Augen werden größer, der Mund wird größer und die Nase wird größer. Das Besondere ist jedoch, dass es sich bei dieser Veränderung nicht um eine sofortige Veränderung handelt Übergangsalgorithmen. Das ist der besorgniserregendste Teil. Glücklicherweise sind diese Algorithmustechnologien sehr ausgereift und erfordern nicht, dass wir darüber nachdenken. Diese Animations-Engine-Bibliotheken haben diese Technologien in sehr einfache und praktische Schnittstellen gekapselt. Werfen wir einen Blick darauf, wie wir die Dinge in Bewegung bringen können.

Animation des linken Auges


JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var leftEyeTween = new Kinetic.Tween({
  2. Knoten: leftEye,
  3. Dauer: 1,
  4. Lockerung: Kinetic.Easings.ElasticEaseOut,
  5. y: -100,
  6. Punkte: [0, 200, 50, 150, 100, 200, 50, 200]
  7. });
Animation des rechten Auges


JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var rightEyeTween = new Kinetic.Tween({
  2. Knoten: rightEye,
  3. Dauer: 1,
  4. Lockerung: Kinetic.Easings.ElasticEaseOut,
  5. y: -100,
  6. Punkte: [0, 200, 50, 150, 100, 200, 50, 200]
  7. });

Animation der Nase

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var NoseTween = new Kinetic.Tween({
  2. Knoten: Nase,
  3. Dauer: 1,
  4. Lockerung: Kinetic.Easings.ElasticEaseOut,
  5. y: -100,
  6. Punkte: [220, 280, sw/2, 200, sw-220,280]
  7. });

Mundanimation

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. varmouthTween = new Kinetic.Tween({
  2. Knoten: Mund,
  3. Dauer: 1,
  4. Lockerung: Kinetic.Easings.ElasticEaseOut,
  5. Punkte: [100, 250, sw/2, 250, sw - 100, 250, sw/2, sh-20]
  6. });

Der Code ist sehr einfach und die Variablennamen sind selbsterklärend. Für Programmierer mit ein wenig Erfahrung sollte es nicht schwierig sein, diese Codes zu verstehen. Grundsätzlich können Sie in jedem Codeabschnitt einige Punkte angeben, um den Abklingmodus und die Dauer der Animationsaktion festzulegen.

Vollständiger Animationscode

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. nbsp;HTML>   
  2.   
  3.      
  4.     
  5.       body {   
  6.         margin: 0px;   
  7.         padding: 0px;   
  8.       }  
  9.       #container {   
  10.         background-color: black;   
  11.       }   
  12.        
  13.      
  14.      
  15.     
    "container">
      
  16.     <script><span class="string">"/js/lib/kinetic-v5.0.1.min.js"</script>>   
  17.     <script><span class="string">"defer"</script>>   
  18.       var sw = 578;   
  19.       var sh = 400;   
  20.       var stage = new Kinetic.Stage({   
  21.         Container: 'Container',   
  22.         Breite: 578,   
  23.         Höhe: 400   
  24.       });   
  25.       var layer = new Kinetic.Layer({   
  26.         y: -30    
  27.       });   
  28.   
  29.       var leftEye = new Kinetic.Line({   
  30.         x: 150,   
  31.         Punkte: [0, 200, 50, 190, 100, 200, 50, 210],   
  32.         Spannung: 0,5,   
  33.         geschlossen: wahr,   
  34.         Strich: 'weiß',   
  35.         Strichbreite: 10        
  36.       });   
  37.   
  38.       var rightEye = new Kinetic.Line({   
  39.         x: sw - 250,   
  40.         Punkte: [0, 200, 50, 190, 100, 200, 50, 210],   
  41.         Spannung: 0,5,   
  42.         geschlossen: wahr,   
  43.         Strich: 'weiß',   
  44.         Strichbreite: 10      
  45.       });   
  46.   
  47.       var nose = neu Kinetic.Line({   
  48.         Punkte: [240, 280, sw/2, 300, sw-240,280],   
  49.         Spannung: 0,5,   
  50.         geschlossen: wahr,   
  51.         Strich: 'weiß',   
  52.         Strichbreite: 10   
  53.       });   
  54.   
  55.       var mouth = new Kinetic.Line({   
  56.         Punkte: [150, 340, sw/2, 380, sw - 150, 340, sw/2, sh],   
  57.         Spannung: 0,5,   
  58.         geschlossen: wahr,   
  59.         Strich: 'rot',   
  60.         Strichbreite: 10   
  61.       });   
  62.   
  63.       layer.add(leftEye)   
  64.            .add(rightEye)   
  65.            .add(nose)   
  66.            .add(mouth);   
  67.   
  68.       stage.add(layer);   
  69.   
  70.       // Tweens   
  71.   
  72.       var leftEyeTween = new Kinetic.Tween({   
  73.         node: leftEye,   
  74.         Dauer: 1,   
  75.         easing: Kinetic.Easings.ElasticEaseOut,   
  76.         y: -100,   
  77.         Punkte: [0, 200, 50, 150, 100, 200, 50, 200]   
  78.       });    
  79.   
  80.       var rightEyeTween = new Kinetic.Tween({   
  81.         node: rightEye,   
  82.         Dauer: 1,   
  83.         easing: Kinetic.Easings.ElasticEaseOut,   
  84.         y: -100,   
  85.         Punkte: [0, 200, 50, 150, 100, 200, 50, 200]   
  86.       });   
  87.   
  88.       var noseTween = new Kinetic.Tween({   
  89.         node: nase,   
  90.         Dauer: 1,   
  91.         easing: Kinetic.Easings.ElasticEaseOut,   
  92.         y: -100,   
  93.         Punkte: [220, 280, sw/2, 200, sw-220,280]   
  94.       });    
  95.   
  96.       var mouthTween = new Kinetic.Tween({   
  97.         Knoten: Mund,   
  98.         Dauer: 1,   
  99.         easing: Kinetic.Easings.ElasticEaseOut,   
  100.         Punkte: [100, 250, sw/2, 250, sw - 100, 250, sw/2, sh-20]   
  101.       });    
  102.   
  103.       stage.getContainer().addEventListener('mouseover'function() {   
  104.         leftEyeTween.play();   
  105.         rightEyeTween.play();   
  106.         noseTween.play();   
  107.         mouthTween.play();   
  108.       });   
  109.   
  110.       stage.getContainer().addEventListener('mouseout'function() {   
  111.         leftEyeTween.reverse();   
  112.         rightEyeTween.reverse();   
  113.         noseTween.reverse();   
  114.         mouthTween.reverse();   
  115.       });   
  116.   
  117.        
  118.      
  119.   

Regardez la démo

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
H5 -Code verstehen: Die Grundlagen von HTML5H5 -Code verstehen: Die Grundlagen von HTML5Apr 17, 2025 am 12:08 AM

HTML5 ist eine Schlüsseltechnologie zum Aufbau moderner Webseiten und bietet viele neue Elemente und Funktionen. 1. HTML5 führt semantische Elemente wie usw. ein, die die Webseitenstruktur und die SEO verbessern. 2. Support Multimedia-Elemente und Einbetten von Medien ohne Plug-Ins. 3. Formulare verbessern neue Eingangstypen und Überprüfungseigenschaften und vereinfachen Sie den Überprüfungsprozess. 4. Bieten Sie Offline- und lokale Speicherfunktionen an, um die Leistung der Webseiten und die Benutzererfahrung zu verbessern.

H5 -Code: Best Practices für WebentwicklerH5 -Code: Best Practices für WebentwicklerApr 16, 2025 am 12:14 AM

Zu den Best Practices für den H5 -Code gehören: 1. Verwenden Sie korrekte DocType -Deklarationen und Zeichenkodierung; 2. Verwenden Sie semantische Tags; 3.. HTTP -Anfragen reduzieren; 4. Verwenden Sie asynchrone Laden; 5. Bilder optimieren. Diese Praktiken können die Effizienz, Wartbarkeit und Benutzererfahrung von Webseiten verbessern.

H5: Die Entwicklung von Webstandards und TechnologienH5: Die Entwicklung von Webstandards und TechnologienApr 15, 2025 am 12:12 AM

Webstandards und -technologien haben sich bisher aus HTML4, CSS2 und einfachem JavaScript entwickelt und haben erhebliche Entwicklungen erfahren. 1) HTML5 führt APIs wie Leinwand und Webstorage ein, die die Komplexität und Interaktivität von Webanwendungen verbessern. 2) CSS3 fügt Animations- und Übergangsfunktionen hinzu, um die Seite effektiver zu gestalten. 3) JavaScript verbessert die Entwicklungseffizienz und die Lesbarkeit der Code durch moderne Syntax von Node.js und ES6, wie z. B. Pfeilfunktionen und Klassen. Diese Änderungen haben die Entwicklung von Leistungsoptimierung und Best Practices von Webanwendungen gefördert.

Ist H5 eine Abkürzung für HTML5? Erforschen der DetailsIst H5 eine Abkürzung für HTML5? Erforschen der DetailsApr 14, 2025 am 12:05 AM

H5 ist nicht nur die Abkürzung von HTML5, sondern auch ein breiteres Ökosystem der modernen Webentwicklungstechnologie: 1. H5 enthält HTML5, CSS3, JavaScript und verwandte APIs und Technologien; 2. Es bietet eine reichhaltigere, interaktive und reibungslose Benutzererfahrung und kann nahtlos auf mehreren Geräten ausgeführt werden. 3. Mit dem H5 -Technologie -Stack können Sie reaktionsschnelle Webseiten und komplexe interaktive Funktionen erstellen.

H5 und HTML5: häufig verwendete Begriffe in der WebentwicklungH5 und HTML5: häufig verwendete Begriffe in der WebentwicklungApr 13, 2025 am 12:01 AM

H5 und HTML5 beziehen sich auf dasselbe, nämlich HTML5. HTML5 ist die fünfte Version von HTML, die neue Funktionen wie semantische Tags, Multimedia -Support, Leinwand und Grafiken, Offline -Speicher und lokaler Speicher bietet, die Ausdrucksfähigkeit und Interaktivität von Webseiten verbessert.

Worauf bezieht sich H5? Erforschen des KontextesWorauf bezieht sich H5? Erforschen des KontextesApr 12, 2025 am 12:03 AM

H5REFERSTOHTML5, ApivotaltechnologyInwebdevelopment.1) HTML5IntroducesNewelementsandapisrich, Dynamicwebapplications.2) ITSUPP ortsmultimediaWitHoutPlugins, BETHINGINGUSEREXPERICERCROSSDEVICES.3) SEMANTICELEMENTSIMPROVEPENTENTENTENTRUCTENTRUCTELUREANDSEO.4) H5'SRespo

H5: Tools, Frameworks und Best PracticesH5: Tools, Frameworks und Best PracticesApr 11, 2025 am 12:11 AM

Zu den Tools und Frameworks, die in der H5 -Entwicklung gemeistert werden müssen, gehören Vue.js, React und WebPack. 1.Vue.js eignet sich zum Erstellen von Benutzeroberflächen und unterstützt die Komponentenentwicklung. 2. Die Rendern des Seitenrenders über virtuelle DOM optimiert, geeignet für komplexe Anwendungen. 3.Webpack wird zur Modulverpackung und zur Optimierung der Ressourcenlast verwendet.

Das Erbe von HTML5: H5 in der Gegenwart verstehenDas Erbe von HTML5: H5 in der Gegenwart verstehenApr 10, 2025 am 09:28 AM

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft