Heim Web-Frontend js-Tutorial Vue verwendet Canvas, um ein mobiles Handschriftpad zu implementieren

Vue verwendet Canvas, um ein mobiles Handschriftpad zu implementieren

May 05, 2018 am 11:16 AM
canvas 手写板 移动

Dieser Artikel stellt hauptsächlich die Methode vor, mit der Vue ein mobiles Handschriftpad implementiert. Jetzt kann ich ihn mit Ihnen teilen.

Dieser Artikel stellt die Verwendung vor Von Vue möchte ich Ihnen die Methode zur Verwendung von Canvas zur Implementierung eines mobilen Handschrift-Tablets wie folgt mitteilen:

<template>
 <p class="hello">
<!--touchstart,touchmove,touchend,touchcancel 这-->
 <button type="" v-on:click="clear">清除</button>
 <button v-on:click="save">保存</button>
  <canvas id="canvas" width="300" height="600" style="border:1px solid black">Canvas画板</canvas>
  <img v-bind:src="url" alt="">
 </p>
 
</template>

<script>
var draw;
var preHandler = function(e){e.preventDefault();}
class Draw {
  constructor(el) {
    this.el = el
    this.canvas = document.getElementById(this.el)
    this.cxt = this.canvas.getContext(&#39;2d&#39;)
    this.stage_info = canvas.getBoundingClientRect()
    this.path = {
      beginX: 0,
      beginY: 0,
      endX: 0,
      endY: 0
    }
  }
  init(btn) {
    var that = this; 
    
    this.canvas.addEventListener(&#39;touchstart&#39;, function(event) {
      document.addEventListener(&#39;touchstart&#39;, preHandler, false); 
      that.drawBegin(event)
    })
    this.canvas.addEventListener(&#39;touchend&#39;, function(event) { 
      document.addEventListener(&#39;touchend&#39;, preHandler, false); 
      that.drawEnd()
      
    })
    this.clear(btn)
  }
  drawBegin(e) {
    var that = this;
    window.getSelection() ? window.getSelection().removeAllRanges() : document.selection.empty()
    this.cxt.strokeStyle = "#000"
    this.cxt.beginPath()
    this.cxt.moveTo(
      e.changedTouches[0].clientX - this.stage_info.left,
      e.changedTouches[0].clientY - this.stage_info.top
    )
    this.path.beginX = e.changedTouches[0].clientX - this.stage_info.left
    this.path.beginY = e.changedTouches[0].clientY - this.stage_info.top
    canvas.addEventListener("touchmove",function(){
      that.drawing(event)
    })
  }
  drawing(e) {
    this.cxt.lineTo(
      e.changedTouches[0].clientX - this.stage_info.left,
      e.changedTouches[0].clientY - this.stage_info.top
    )
    this.path.endX = e.changedTouches[0].clientX - this.stage_info.left
    this.path.endY = e.changedTouches[0].clientY - this.stage_info.top
    this.cxt.stroke()
  }
  drawEnd() {
    document.removeEventListener(&#39;touchstart&#39;, preHandler, false); 
    document.removeEventListener(&#39;touchend&#39;, preHandler, false);
    document.removeEventListener(&#39;touchmove&#39;, preHandler, false);
    //canvas.ontouchmove = canvas.ontouchend = null
  }
  clear(btn) {
    this.cxt.clearRect(0, 0, 300, 600)
  }
  save(){
    return canvas.toDataURL("image/png")
  }
}

export default {
 data () {
  return {
   msg: &#39;Welcome to Your Vue.js App&#39;,
   val:true,
   url:""
  }
 },
 mounted() {
   draw=new Draw(&#39;canvas&#39;);
   draw.init();
 },
 methods:{
  clear:function(){
    draw.clear();
  },
  save:function(){
    var data=draw.save();
    this.url = data;
    console.log(data)
  },

   mutate(word) {
     this.$emit("input", word);
   },
} 
} 
</script> 
<!-- Add "scoped" attribute to limit CSS to this component only --> 
<style scoped>
h1, h2 {
 font-weight: normal;
}
ul {
 list-style-type: none;
 padding: 0;
}
li {
 display: inline-block;
 margin: 0 10px;
}
a {
 color: #42b983;
}
#canvas {
 background: pink;
 cursor: default;
}
#keyword-box {
 margin: 10px 0;
}
</style>
Nach dem Login kopieren

Verwandte Empfehlungen:

Vue implementiert das Systemmenü, das in der oberen rechten Ecke der Seite ein-/ausgeblendet werden kann

Schritte zum Implementieren der Vue-Crop-Preview-Komponente Funktion


Das obige ist der detaillierte Inhalt vonVue verwendet Canvas, um ein mobiles Handschriftpad zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

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)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann der Appdata-Ordner auf das Laufwerk D verschoben werden? Kann der Appdata-Ordner auf das Laufwerk D verschoben werden? Feb 18, 2024 pm 01:20 PM

Kann der Appdata-Ordner auf das Laufwerk D verschoben werden? Mit zunehmender Beliebtheit der Computernutzung werden immer mehr persönliche Daten und Anwendungen der Benutzer auf dem Computer gespeichert. Im Windows-Betriebssystem gibt es einen speziellen Ordner namens Appdata-Ordner, der zum Speichern der Anwendungsdaten des Benutzers verwendet wird. Viele Benutzer fragen sich, ob dieser Ordner aus Datenverwaltungs- und Sicherheitsgründen auf das Laufwerk D oder andere Datenträger verschoben werden kann. In diesem Artikel werden wir dieses Problem diskutieren und einige Lösungen anbieten. Lassen Sie mich zuerst

6000 mAh Silizium-Minusbatterie! Xiaomi 15Pro-Upgrade erneut durchgesickert 6000 mAh Silizium-Minusbatterie! Xiaomi 15Pro-Upgrade erneut durchgesickert Jul 24, 2024 pm 12:45 PM

Laut Nachrichten vom 23. Juli verbreitete der Blogger Digital Chat Station die Nachricht, dass die Akkukapazität des Xiaomi 15 Pro auf 6000 mAh erhöht wurde und das kabelgebundene Blitzladen mit 90 W unterstützt. Dies wird das Pro-Modell mit dem größten Akku in der digitalen Serie von Xiaomi sein. Digital Chat Station enthüllte zuvor, dass der Akku des Xiaomi 15Pro eine extrem hohe Energiedichte aufweist und der Siliziumgehalt viel höher ist als bei Konkurrenzprodukten. Nachdem im Jahr 2023 siliziumbasierte Batterien in großem Maßstab getestet werden, wurden Siliziumanodenbatterien der zweiten Generation als zukünftige Entwicklungsrichtung der Branche identifiziert. Dieses Jahr wird der Höhepunkt des direkten Wettbewerbs einläuten. 1. Die theoretische Grammkapazität von Silizium kann 4200 mAh/g erreichen, was mehr als dem Zehnfachen der Grammkapazität von Graphit entspricht (die theoretische Grammkapazität von Graphit beträgt 372 mAh/g). Für die negative Elektrode beträgt die Kapazität, wenn die Lithiumioneneinfügungsmenge das Maximum erreicht, die theoretische Grammkapazität, was bedeutet, dass sie bei gleichem Gewicht erfolgt

Stoppen Sie oder erlauben Sie diesem PC den Zugriff auf Ihr Mobilgerät unter Windows 11 Stoppen Sie oder erlauben Sie diesem PC den Zugriff auf Ihr Mobilgerät unter Windows 11 Feb 19, 2024 am 11:45 AM

Microsoft hat in der neuesten Windows 11-Version den Namen von PhoneLink in MobileDevice geändert. Diese Änderung ermöglicht es Benutzern, den Computerzugriff auf mobile Geräte über Eingabeaufforderungen zu steuern. In diesem Artikel wird erläutert, wie Sie Einstellungen auf Ihrem Computer verwalten, die den Zugriff von Mobilgeräten aus zulassen oder verweigern. Mit dieser Funktion können Sie Ihr Mobilgerät konfigurieren und es mit Ihrem Computer verbinden, um Textnachrichten zu senden und zu empfangen, mobile Anwendungen zu steuern, Kontakte anzuzeigen, Telefonanrufe zu tätigen, Galerien anzuzeigen und vieles mehr. Ist es eine gute Idee, Ihr Telefon an Ihren PC anzuschließen? Die Verbindung Ihres Telefons mit Ihrem Windows-PC ist eine komfortable Möglichkeit und erleichtert die Übertragung von Funktionen und Medien. Dies ist nützlich für diejenigen, die ihren Computer verwenden müssen, wenn ihr Mobilgerät nicht verfügbar ist

Der neue König der heimischen FPS! „Operation Delta' Battlefield übertrifft Erwartungen Der neue König der heimischen FPS! „Operation Delta' Battlefield übertrifft Erwartungen Mar 07, 2024 am 09:37 AM

„Operation Delta“ wird heute (7. März) einen groß angelegten PC-Test mit dem Namen „Codename: ZERO“ starten. Letztes Wochenende veranstaltete dieses Spiel in Shanghai eine Offline-Flashmob-Erlebnisveranstaltung, und 17173 hatte auch das Glück, zur Teilnahme eingeladen zu werden. Dieser Test liegt etwas mehr als vier Monate seit dem letzten Test zurück, was uns neugierig macht, welche neuen Highlights und Überraschungen wird „Operation Delta“ in so kurzer Zeit mit sich bringen? Vor mehr als vier Monaten habe ich „Operation Delta“ in einer Offline-Verkostung und der ersten Beta-Version erlebt. Damals öffnete das Spiel nur den „Dangerous Action“-Modus. Allerdings war die Operation Delta für ihre Zeit bereits beeindruckend. Im Kontext der großen Hersteller, die in den Markt für mobile Spiele strömen, ist ein solcher FPS mit internationalen Standards vergleichbar

Honor Magic6 RSR Porsche Design kommt offiziell zum Verkauf, 1 TB zum Preis von 9.999 Yuan Honor Magic6 RSR Porsche Design kommt offiziell zum Verkauf, 1 TB zum Preis von 9.999 Yuan Mar 22, 2024 pm 03:03 PM

Kürzlich veranstaltete Honor Mobile eine neue Produkteinführungskonferenz und stellte offiziell das Honor Magic6RSR Porsche Design vor. Am 22. März erfuhr CNMO, dass das Honor Magic 6 RSR Porsche Design offiziell zum Verkauf angeboten wurde, wobei nur eine 24 GB + 1 TB-Version für 9.999 Yuan erhältlich ist. Honor Magic6 RSR übernimmt ein Porsche-Design-Erscheinungsbild, inspiriert von den klassischen Elementen der Porsche-Supersportwagen. Das Design der hinteren Linie ist vom Porsche-Flying-Line-Design inspiriert und das Kameramodul übernimmt das ikonische sechseckige Design, was dem Produkt ein ausgeprägtes dreidimensionales und dynamisches Gefühl verleiht. Darüber hinaus ist das Produkt in zwei Farben erhältlich, Achatgrau und Eisbeerrosa, die von Porsche-Originalmeistern farblich abgestimmt wurden und die einzigartige Designschönheit noch weiter hervorheben. In puncto Bildschirmtechnologie hält Honor Magic6RSR mit

Welche Versionen von html2canvas gibt es? Welche Versionen von html2canvas gibt es? Aug 22, 2023 pm 05:58 PM

Zu den Versionen von html2canvas gehören html2canvas v0.x, html2canvas v1.x usw. Detaillierte Einführung: 1. html2canvas v0.x, eine frühe Version von html2canvas. Die neueste stabile Version ist v0.5.0-alpha1. Es handelt sich um eine ausgereifte Version, die in vielen Projekten weit verbreitet und verifiziert wurde. 2. html2canvas v1.x, dies ist eine neue Version von html2canvas.

uniapp implementiert die Verwendung von Canvas zum Zeichnen von Diagrammen und Animationseffekten uniapp implementiert die Verwendung von Canvas zum Zeichnen von Diagrammen und Animationseffekten Oct 18, 2023 am 10:42 AM

Für die Verwendung von Canvas zum Zeichnen von Diagrammen und Animationseffekten in Uniapp sind bestimmte Codebeispiele erforderlich. 1. Einführung Mit der Beliebtheit mobiler Geräte müssen immer mehr Anwendungen verschiedene Diagramme und Animationseffekte auf dem mobilen Endgerät anzeigen. Als plattformübergreifendes Entwicklungsframework auf Basis von Vue.js bietet uniapp die Möglichkeit, Canvas zum Zeichnen von Diagrammen und Animationseffekten zu verwenden. In diesem Artikel wird vorgestellt, wie Uniapp Canvas verwendet, um Diagramm- und Animationseffekte zu erzielen, und es werden spezifische Codebeispiele gegeben. 2. Leinwand

Für welche Stile ist html2canvas ungültig? Für welche Stile ist html2canvas ungültig? Nov 24, 2023 pm 03:25 PM

Zu den ungültigen Stilen gehören CSS3-Animationen und -Übergänge, CSS-Filtereffekte, komplexe CSS3-Grafiken und -Pfade, einige CSS3-Funktionen, Pseudoelemente und einige CSS-Funktionen, Z-Index, Hintergrundbilder und Verläufe usw. Ausführliche Einführung: 1. CSS3-Animation und -Übergang: html2canvas erfasst CSS3-Animations- und Übergangseffekte möglicherweise nicht vollständig. Obwohl versucht wird, den endgültigen Stil zu erfassen, können diese Animationen und Übergänge während des Konvertierungsprozesses verloren gehen. 2. CSS-Filtereffekte: Filter wie Unschärfe und Schatten bleiben während des Konvertierungsprozesses möglicherweise nicht erhalten.

See all articles