Vue implementiert grafischen Überprüfungscode

Vue implementiert grafischen Überprüfungscode

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Implementierung des Grafiküberprüfungscodes zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Effektbild:

oder

oder

oder

Code:

Prüfcode-Komponente:

src/common/sIdentify.vue

<Vorlage>
  <div Klasse="s-canvas">
    <canvas id="s-canvas" :width="Inhaltsbreite" :height="Inhaltshöhe"></canvas>
  </div>
</Vorlage>
<Skript>
  Standard exportieren {
    Name: 'SIdentify',
    Requisiten: {
      Identifizierungscode:
        Typ: Zeichenfolge,
        Standard: „1234“
      },
      SchriftgrößeMin: {
        Typ: Nummer,
        Standard: 18
      },
      SchriftgrößeMax: {
        Typ: Nummer,
        Standard: 40
      },
      HintergrundFarbeMin: {
        Typ: Nummer,
        Standard: 180
      },
      HintergrundFarbeMax: {
        Typ: Nummer,
        Standard: 240
      },
      FarbeMin:
        Typ: Nummer,
        Standard: 50
      },
      FarbeMax: {
        Typ: Nummer,
        Standard: 160
      },
      LinienfarbeMin: {
        Typ: Nummer,
        Standard: 40
      },
      ZeilenfarbeMax: {
        Typ: Nummer,
        Standard: 180
      },
      PunktFarbeMin: {
        Typ: Nummer,
        Standard: 0
      },
      PunktFarbeMax: {
        Typ: Nummer,
        Standard: 255
      },
      Inhaltsbreite: {
        Typ: Nummer,
        Standard: 111
      },
      Inhaltshöhe: {
        Typ: Nummer,
        Standard: 38
      }
    },
    Methoden: {
      // Erzeuge eine Zufallszahl randomNum(min, max) {
        gibt Math.floor(Math.random() * (max - min) + min) zurück
      },
      // Erzeuge eine zufällige Farbe randomColor(min, max) {
        sei r = diese.Zufallszahl(min, max)
        sei g = diese.Zufallszahl(min, max)
        sei b = diese.Zufallszahl(min, max)
        gibt 'rgb(' + r + ',' + g + ',' + b + ')' zurück
      },
      zeichneBild() {
        let Leinwand = Dokument.getElementById('s-canvas')
        lass ctx = canvas.getContext('2d')
        ctx.textBaseline = "unten"
        // Zeichne den Hintergrund ctx.fillStyle = this.randomColor(this.backgroundColorMin, this.backgroundColorMax)
        ctx.fillRect(0, 0, diese.Inhaltsbreite, diese.Inhaltshöhe)
        // Text zeichnen für (let i = 0; i < this.identifyCode.length; i++) {
          dies.drawText(ctx, dies.identifyCode[i], i)
        }
        // this.drawLine(ctx) // Interferenzlinie zeichnen // this.drawDot(ctx) // Interferenzpunkt zeichnen},
      // Text zeichnen drawText(ctx, txt, i) {
        ctx.fillStyle = diese.randomColor(diese.colorMin, diese.colorMax)
        ctx.font = diese.randomNum(diese.fontSizeMin, diese.fontSizeMax) + 'px SimHei'
        sei x = (i + 1) * (this.contentWidth / (this.identifyCode.length + 1))
        sei y = this.randomNum(this.fontSizeMax, this.contentHeight - 5)
        var deg = this.randomNum(-30, 30) // Zeichendrehwinkel (vorzugsweise nicht mehr als 45 Grad)
        // Koordinatenursprung und Drehwinkel ändern ctx.translate(x, y)
        ctx.rotate(Grad * Math.PI / 180)
        ctx.fillText(txt, 0, 0)
        // Koordinatenursprung und Drehwinkel wiederherstellen ctx.rotate(-deg * Math.PI / 180)
        ctx.translate(-x, -y)
      },
      zeichneLinie(ctx) {
        // Zeichne Interferenzlinien für (let i = 0; i < 8; i++) {
          ctx.strokeStyle = diese.randomColor(diese.lineColorMin, diese.lineColorMax)
          ctx.beginPath()
          ctx.moveTo(diese.randomNum(0, diese.Inhaltsbreite), diese.randomNum(0, diese.Inhaltshöhe))
          ctx.lineTo(diese.randomNum(0, diese.Inhaltsbreite), diese.randomNum(0, diese.Inhaltshöhe))
          ctx.stroke()
        }
      },
      Punkt zeichnen(ctx) {
        // Zeichne Interferenzpunkte für (let i = 0; i < 100; i++) {
          ctx.fillStyle = diese.randomColor(0, 255)
          ctx.beginPath()
          ctx.arc(diese.randomNum(0, diese.Inhaltsbreite), diese.randomNum(0, diese.Inhaltshöhe), 1, 0, 2 * Math.PI)
          ctx.fill()
        }
      }
    },
    betrachten:
      identifiziereCode() {
        dieses.drawPic()
      }
    },
    montiert() {
      dieses.drawPic()
    }
  }
</Skript>

Übergeordnete Komponente

<Vorlage>
  <div>
    <div>Verifizierungscode-Test</div>
    <div @click="refreshCode()" class="code" style="cursor:pointer;" title="Klicken, um den Bestätigungscode zu wechseln">
      <s-identify :identifyCode="identifyCode"></s-identify>
    </div>
  </div>
</Vorlage>

<Skript>
importiere { defineComponent } von „vue“;
importiere sIdentify aus "@/common/sIdentify.vue";
// importiere Axios von „Axios“
exportiere StandarddefiniereKomponente({
  Name: 'WasserzeichenTest',
  Komponenten: { sIdentify },
  Daten() {
    zurückkehren {
      Identifizierungscode: "",
      identifyCodes: ['0','1','2','3','4','5','6','7','8','9','a','b','c','d'], //Fügen Sie die gewünschten Zeichen entsprechend dem tatsächlichen Bedarf hinzu}
  },
  montiert() {
    dies.refreshCode()
 },
 nicht eingehängt() {

 },
  Methoden: {
    // Zufallszahl generieren randomNum(min, max) {
      max = max + 1
      gibt Math.floor(Math.random() * (max - min) + min) zurück;
    },
    // Prüfcode aktualisieren refreshCode() {
      dieser.identifyCode = "";
      dies.makeCode(dies.identifyCodes, 4);
      console.log('Aktueller Bestätigungscode:',this.identifyCode);
    },
    // Verifizierungscode zufällig generieren string makeCode(data, len) {
      console.log('Daten, Länge:', Daten, Länge)
      für (sei i = 0; i < len; i++) {
        dieser.identifyCode += dieser.identifyCodes[diese.randomNum(0, dieser.identifyCodes.length-1)]
      }
    },
  },
});
</Skript>

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Einfache Implementierung der 60-Sekunden-Countdown-Funktion des Vue-Verifizierungscodes
  • vue implementiert die Registrierungsfunktion zum Senden eines SMS-Bestätigungscodes über das Mobiltelefon
  • Vue generiert einen zufälligen Verifizierungscode-Beispielcode
  • Vue + Element-UI integriert eine zufällige Überprüfungsfunktion für den Bestätigungscode + Benutzernamen + Kennwort
  • VUE implementiert die Bildverifizierungscodefunktion
  • So fügen Sie in Vue eine Komponentenfunktion für mobile Verifizierungscodes hinzu
  • Vue implementiert die Komponente „Eingabefeld für Bestätigungscodes“
  • Vue implementiert die Funktion zum Überprüfen des Schiebepuzzle-Codes
  • Das Vue-Projekt implementiert einen grafischen Überprüfungscode
  • Vue implementiert Bildverifizierungscode beim Anmelden

<<:  Detaillierte Analyse des langsamen Abfrageproblems beim Senden von MySQL-Daten

>>:  So richten Sie Referer in Nginx ein, um Bilddiebstahl zu verhindern

Artikel empfehlen

Tutorial zur Installation von MySQL 5.6 auf CentOS 6.5

1. Laden Sie das RPM-Paket für Linux herunter htt...

Lösung für Linux, das nicht alle Befehle unterstützt

Was soll ich tun, wenn Linux nicht alle Befehle u...

Lösung für das Problem der MySQL-Transaktionsparallelität

Ich bin während der Entwicklung auf ein solches P...

Lösung zum Hinzufügen einer iptables-Firewall-Richtlinie zum MySQL-Dienst

Wenn Ihre MySQL-Datenbank auf einem CentOS7-Syste...

Das WeChat-Applet realisiert ein Verknüpfungsmenü

Um das Kursdesign zu realisieren, habe ich kürzli...

Wettersymbol-Animationseffekt implementiert durch CSS3

Ergebnisse erzielen Implementierungscode html <...

MySQL 5.7.10 Installations- und Konfigurations-Tutorial unter Windows

MySQL bietet zwei verschiedene Versionen für unte...

Einige Tipps zum Schreiben leistungsstarker HTML-Anwendungen

Wie können Sie die Leistung einer Webseite verbes...

Detaillierte Erklärung der JSONObject-Verwendung

JSONObject ist lediglich eine Datenstruktur, die ...

JavaScript-Ereigniserfassungs-Blubbern und Erfassungsdetails

Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...

Eine dauerhafte Lösung für MySQLs Unfähigkeit, Chinesisch zu erkennen

In den meisten Fällen unterstützt MySQL Chinesisc...

Hexadezimale Farbcodes (vollständig)

Rot und Pink und ihre Hexadezimalcodes. #990033 #...

Detailliertes Tutorial zur schnellen Installation von Zookeeper in Docker

Docker: Zookeeper schnell installieren Ich habe Z...

So löschen Sie Junk-Dateien elegant in Linux

Ich frage mich, ob Sie wie ich ein Programmierer ...