JavaScript zur Implementierung der Funktion zum Ändern des Avatars

JavaScript zur Implementierung der Funktion zum Ändern des Avatars

In diesem Artikel wird der spezifische JavaScript-Code zur Implementierung der Avatar-Änderungsfunktion zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Das Wichtigste ist, das jQuery-Plugin Cropper zu verwenden

1. Grundlegende Nutzungsschritte

1. Importieren Sie das Stylesheet cropper.css in den <head>:

<link rel="stylesheet" href="/assets/lib/cropper/cropper.css" />

2. Importieren Sie vor dem schließenden Tag von <body> die folgenden JS-Skripte der Reihe nach:

<script src="/assets/lib/jquery.js"></script>
<!-- Importieren Sie das Cropper-JS-Skript-->
<script src="/assets/lib/cropper/Cropper.js"></script>
<script src="/assets/lib/cropper/jquery-cropper.js"></script>

3. Definieren Sie die folgende HTML-Struktur:

<!-- Bildzuschnitt und Vorschaubereich in der ersten Zeile-->
   <div Klasse="Zeile1">
         <!-- Bildzuschneidebereich-->
            <div Klasse="cropper-box">
                    <!-- Dieses img-Tag ist sehr wichtig, es wird zukünftig als Zuschneidebereich initialisiert-->
                    <img id="Bild" src="/assets/images/sample.jpg" />
             </div>
             <!-- Bildvorschaubereich-->
             <div Klasse="Vorschau-Box">
                    <div>
                        <!-- Vorschaubereich mit einer Breite und Höhe von 100px -->
                        <div Klasse="img-preview w100"></div>
                        <p class="size">100 x 100</p>
                    </div>
                    <div>
                        <!-- Vorschaubereich mit einer Breite und Höhe von 50px -->
                        <div Klasse="img-preview w50"></div>
                        <p class="size">50 x 50</p>
                    </div>
                </div>
            </div>
 
 <!-- Schaltflächenbereich der zweiten Reihe-->
<div Klasse="Zeile2">
         <button type="button" class="layui-btn">Hochladen</button>
         <button type="button" class="layui-btn layui-btn-danger">OK</button>
</div>

4. CSS-Stil:

/* Breite des Kartenkörperbereichs festlegen */
 
.layui-Kartenkörper {
    Breite: 500px;
}
 
 
/* Den Stil der Schaltflächenzeile festlegen */
 
.Zeile2 {
    Anzeige: Flex;
    Inhalt ausrichten: Flex-Ende;
    Rand oben: 20px;
}
 
 
/* Den Stil des Clipping-Bereichs festlegen */
 
.cropper-box {
    Breite: 350px;
    Höhe: 350px;
    Hintergrundfarbe: Cyan;
    Überlauf: versteckt;
}
 
 
/* Legt den Stil des ersten Vorschaubereichs fest */
 
.w100 {
    Breite: 100px;
    Höhe: 100px;
    Hintergrundfarbe: grau;
}
 
 
/* Legt den Stil des zweiten Vorschaubereichs fest */
 
.w50 {
    Breite: 50px;
    Höhe: 50px;
    Hintergrundfarbe: grau;
    Rand oben: 50px;
}
 
 
/* Legen Sie den Stil des Textes unter dem Vorschaubereich fest */
 
.Größe {
    Schriftgröße: 12px;
    Farbe: grau;
    Textausrichtung: zentriert;
}
 
 
/* Den Stil der Bildzeile festlegen */
 
.Zeile1 {
    Anzeige: Flex;
}
 
 
/* Den Stil des Vorschaufensterbereichs festlegen */
 
.Vorschau-Box {
    Anzeige: Flex;
    Flex-Richtung: Spalte;
    biegen: 1;
    Elemente ausrichten: zentrieren;
}
 
 
/* Legen Sie den Stil des Bildvorschaubereichs fest */
 
.img-Vorschau {
    Überlauf: versteckt;
    Randradius: 50 %;
}

5. Importieren Sie Ihre eigene jS-Datei und schreiben Sie den folgenden Inhalt, um einen grundlegenden Trimmeffekt zu erzielen:

$(Funktion() {
    // 1.1 Holen Sie sich das DOM-Element des Zuschneidebereichs var $image = $('#image');
    // 1.2 Konfigurationsoptionen const options = {
        // Seitenverhältnis aspectRatio: 1,
        //Geben Sie den Vorschaubereich an preview: '.img-preview'
    };
 
    // 1.3 Zuschneidebereich erstellen$image.cropper(options);
})

Nach Abschluss der oben genannten Vorbereitungen können Sie die folgenden Ergebnisse erzielen

2. Ersetzen Sie das zugeschnittene Bild

1. Fügen Sie ein Eingabefeld zum Hochladen von Dateien hinzu und achten Sie darauf, das Eingabefeld auszublenden:

<!-- Schaltflächenbereich der zweiten Reihe-->
<div Klasse="Zeile2">
<!-- Über das Accept-Attribut können Sie festlegen, welchen Dateityp der Benutzer auswählen darf-->
<input type="file" id="file" accept="image/png,image/jpeg" />
<button type="button" class="layui-btn" id="btnChooseImage">Hochladen</button>
<button type="button" class="layui-btn layui-btn-danger" id='btnUpload'>OK</button>
</div>

2. Binden Sie das Änderungsereignis an das Dateiauswahlfeld

// Binden Sie das Änderungsereignis an das Dateiauswahlfeld // Das Änderungsereignis wird immer dann ausgelöst, wenn sich die ausgewählte Datei ändert $('#file').on('change', function(e) {
        // Vom Benutzer ausgewählte Datei abrufen var filelist = e.target.files;
        if (Dateiliste.Länge === 0) {
            return layer.msg('Bitte wählen Sie ein Foto aus!');
        }
        // 1. Holen Sie sich die vom Benutzer ausgewählte Datei var file = e.target.files[0];
        // 2. Konvertieren Sie die Datei in einen Pfad var imgURL = URL.createObjectURL(file);
        // 3. Reinitialisierung des Clipping-Bereichs $image
            .cropper('destroy') // Zerstöre den alten Zuschneidebereich.attr('src', imgURL) // Setze den Bildpfad zurück.cropper(options) // Initialisiere den Zuschneidebereich neu})

3. Klickereignis an Bestätigungsschaltfläche binden

// Klickereignis an Bestätigungsschaltfläche binden$('#btnUpload').on('click', function() {
 // 1. Um den zugeschnittenen Avatar des Benutzers zu erhalten, var dataURL = $image
            .cropper('getCroppedCanvas', { // Canvas erstellen Leinwandbreite: 100,
                Höhe: 100
            })
            .toDataURL('image/png') // Konvertiere den Inhalt auf der Canvas-Leinwand in einen String im Base64-Format // 2. Rufe die Schnittstelle auf, um den Avatar auf den Server hochzuladen $.ajax({
            Methode: 'POST',
            URL: '/mein/Update/Avatar',
            Daten: {
                Avatar: Daten-URL
            },
            Erfolg: Funktion (Res) {
                wenn (res.status !== 0) {
                    return layer.msg('Ändern des Avatars fehlgeschlagen!');
                }
                layer.msg('Avatar erfolgreich geändert!');
                window.parent.getUserInfo();
            }
 })

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:
  • Sprechen Sie über den Unterschied zwischen Mod und Rest in Java BigInteger
  • Java ResultSet-Fallstudie
  • Detaillierte Erläuterung der Installation und Konfiguration des Java SDK
  • Java BigDecimal Divisionsgenauigkeit und formatierte Ausgabe
  • Fallstudie zum Java-DFA-Algorithmus
  • Hochpräzise Berechnungsmethode für große Zahlen in Java
  • Hochpräzise Division in Java, die N Dezimalstellen erfordert
  • Detaillierte Erklärung zu Java StackOverflowError

<<:  Beispielanalyse von Linux-Dateiverwaltungsbefehlen [Anzeige, Ansicht, Statistiken usw.]

>>:  MySQL-Anmeldefehler beheben: „Zugriff für Benutzer ‚root‘@‚localhost‘ verweigert“

Artikel empfehlen

Lösung für den Fehler bei der Verbindung mit MySQL in Docker

Szenario: Nach der Installation der neuesten Vers...

Docker Detaillierte Abbildungen

1. Einführung in Docker 1.1 Virtualisierung 1.1.1...

Kompilieren Sie CPP-Dateien mit G++ in Ubuntu

Als ich die CPP-Datei zum ersten Mal mit G++ komp...

Beispiele für häufige Nginx-Fehlkonfigurationen

Inhaltsverzeichnis Fehlender Stammspeicherort Off...

Zusammenfassung der Methoden zur Änderung des Git-Commit-Protokolls

Fall 1: Letzte Übermittlung und kein Push Führen ...

Detailliertes Tutorial zur Installation von MySQL 8.0.12 unter Windows

In diesem Artikel finden Sie eine ausführliche An...

MySQL-Datentabellenpartitionierungsstrategie und Vor- und Nachteileanalyse

Inhaltsverzeichnis Warum brauchen wir Partitionen...

Grundlegende Schritte zur Verwendung einer Mysql-SSH-Tunnelverbindung

Vorwort Aus Sicherheitsgründen kann sich der Root...

MySQL-Lösung für die Konfiguration mehrerer Instanzen

1.1 Was ist MySQL Multi-Instance? Einfach ausgedr...

Kombinieren von XML- und CSS-Stilen

student.xml <?xml version="1.0" enco...

Details zur Datenanzeige der Vue3-Listenschnittstelle

Inhaltsverzeichnis 1. Beispiel für die Anzeige de...

Erste Schritte mit MySQL Sharding

Vorwort Relationale Datenbanken werden eher zu Sy...

Zusammenfassung der Unterschiede zwischen Get- und Post-Anfragen in Vue

Die Betriebsumgebung dieses Tutorials: Windows 7-...