Das Vue-Projekt implementiert einen grafischen Überprüfungscode

Das Vue-Projekt implementiert einen grafischen Überprüfungscode

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

Effektvorschau: (Das Projekt erfordert ein sauberes Erscheinungsbild, es darf also kein Hintergrund vorhanden sein. Der folgende Code enthält jedoch Hintergrundstörungen.)

1. Laden Sie das Identify-Plugin herunter, Befehl: npm i identify

2. Erstellen Sie eine neue Vue-Komponente in Ihrem Komponentenverzeichnis. Mein Name ist: sIdentify.vue

3. Kopiere folgenden Code in die Komponente (du kannst ihn anpassen!)

<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: 35
    },
    SchriftgrößeMax: {
      Typ: Nummer,
      Standard: 35
    },
    HintergrundFarbeMin: {
      Typ: Nummer,
      Standard: 180
    },
    HintergrundFarbeMax: {
      Typ: Nummer,
      Standard: 240
    },
    FarbeMin:
      Typ: Nummer,
      Standard: 50
    },
    FarbeMax: {
      Typ: Nummer,
      Standard: 160
    },
    LinienfarbeMin: {
      Typ: Nummer,
      Standard: 100
    },
    ZeilenfarbeMax: {
      Typ: Nummer,
      Standard: 200
    },
    PunktFarbeMin: {
      Typ: Nummer,
      Standard: 0
    },
    PunktFarbeMax: {
      Typ: Nummer,
      Standard: 255
    },
    Inhaltsbreite: {
      Typ: Nummer,
      Standard: 120
    },
    Inhaltshöhe: {
      Typ: Nummer,
      Standard: 40
    }
  },
  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;
    },
    transparent() {
      gibt "rgb(255,255,255)" zurück;
    },
    zeichneBild() {
      let canvas = document.getElementById("s-canvas");
      Lassen Sie ctx = canvas.getContext("2d");
      ctx.textBaseline = "unten";
      // Zeichne den Hintergrund // ctx.fillStyle = this.randomColor(
      // diese.backgroundColorMin,
      // dies.backgroundColorMax
      // );
      ctx.fillStyle = this.transparent();
      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);
      }
      // diese.drawLine(ctx)
      // dies.drawDot(ctx)
    },
    zeichneText(ctx, txt, i) {
      ctx.fillStyle = diese.randomColor(diese.colorMin, diese.colorMax);
      ctx.Schriftart =
        diese.randomNum(diese.fontSizeMin, diese.fontSizeMax) + "px SimHei";
      sei x = (i + 1) * (diese.Inhaltsbreite / (diese.IdentifyCodelänge + 1));
      sei y = this.randomNum(this.fontSizeMax, this.contentHeight - 5);
      var deg = diese.randomNum(-10, 10);
      // 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.contentWidth),
          diese.randomNum(0, diese.contentHeight)
        );
        ctx.lineTo(
          diese.randomNum(0, diese.contentWidth),
          diese.randomNum(0, diese.contentHeight)
        );
        ctx.stroke();
      }
    },
    Punkt zeichnen(ctx) {
      // Zeichne Interferenzpunkte für (let i = 0; i < 100; i++) {
        ctx.fillStyle = this.randomColor(0, 255);
        ctx.beginPath();
        ctx.arc(
          diese.randomNum(0, diese.contentWidth),
          diese.randomNum(0, diese.contentHeight),
          1,
          0,
          2 * Math.PI
        );
        ctx.fill();
      }
    }
  },
  betrachten:
    identifiziereCode() {
      dies.drawPic();
    }
  },
  montiert() {
    dies.drawPic();
  }
};
</Skript>

4.Fügen Sie die Komponente auf der Seite ein, auf der Sie den Bestätigungscode benötigen, und schreiben Sie die Methode:

<Vorlage>
<div Klasse="Code abrufen" @click="refreshCode()">
    <s-identify :identifyCode="identifyCode"></s-identify>
</div>
</Vorlage>
<Skript>
    importiere SIdentify aus "@/components/sIdentify.vue";
    Standard exportieren {
        Komponenten: { SIdentify },
        Daten() {
           zurückkehren {
                Identifizierungscode: "",
                identifyCodes: "0123456789abcdwerwshdjeJKDHRJHKOOPLMKQ", // einfach eintippen}
        },
        Methoden: {            
           Aktualisierungscode () {//
             dieser.identifyCode = "";
             dies.makeCode(diese.identifyCodes,4);
           },
           Zufallszahl (min, max) {
             max = max + 1
             gibt Math.floor(Math.random() * (max - min) + min) zurück
           },
           // Bestätigungscode zufällig generieren string makeCode (data, len) {
             für (sei i = 0; i < len; i++) {
             dieser.identifyCode += Daten[diese.randomNum(0, Datenlänge - 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
  • Vue implementiert Bildverifizierungscode beim Anmelden
  • Vue implementiert grafischen Überprüfungscode

<<:  SQL-Abfrage MySql-Datenbanktabellenname und -beschreibung Tabellenfeld- (Spalten-)Informationen

>>:  Detaillierte Erläuterung der SSHD-Dienste und Dienstverwaltungsbefehle unter Linux

Artikel empfehlen

18 erstaunliche Verbindungen zwischen Interaktionsdesign und Psychologie

Designer müssen Psychologie verstehen, indem sie ...

Beispielcode zum Erstellen eines Dropdown-Menüs mit reinem CSS

Einführung: Als ich mir in letzter Zeit die Frage...

Native JS-Drag-and-Drop-Funktion zum Erstellen eines Slider-Beispielcodes

Drag & Drop ist eine gängige Funktion im Fron...

So zeigen Sie die IP-Adresse des Docker-Containers an

Ich dachte immer, Docker hätte keine IP-Adresse. ...

So handhaben Sie den Token-Ablauf in WeChat-Miniprogrammen

Inhaltsverzeichnis Fazit zuerst Frage Lösung Verw...

Einfacher CSS-Textanimationseffekt

Ergebnisse erzielen Implementierungscode html <...

Dynamische Vue-Komponente

Inhaltsverzeichnis 1. Komponente 2. Keep-Alive-Mo...

JavaScript zum Erzielen eines Tab-Umschalteffekts

In diesem Artikel wird der spezifische JavaScript...

MySQL SHOW PROCESSLIST unterstützt den gesamten Prozess der Fehlerbehebung

1. SHOW PROCESSLIST-Befehl SHOW PROCESSLIST zeigt...

VMware Workstation ist nicht mit Device/Credential Guard kompatibel

Beim Installieren einer virtuellen Maschine wird ...

Techniken zur Optimierung von MySQL-Paging-Abfragen

In Anwendungen mit Paging-Abfragen sind Abfragen,...