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

Implementierung von zwei Basis-Images für die Docker-Bereitstellung von Go

1. golang:neuestes Basis-Image mkdir gotest Berüh...

Detaillierte Erklärung des Linux-Netstat-Befehls

Inhaltsverzeichnis Linux-Netstat-Befehl 1. Detail...

Vue.js implementiert Erläuterungen zum Tab-Umschalten und Farbwechseln

Bei der Implementierung dieser Funktion konnte di...

So installieren Sie Docker auf Raspberry Pi

Da Raspberry Pi auf der ARM-Architektur basiert, ...

Hyperlink-Tag für HTML-Webseiten

Lernprogramm zum Hyperlink-Tag einer HTML-Webseit...

Keine chinesische Spezialität: Webentwicklung unter kulturellen Unterschieden

Webdesign und -entwicklung sind harte Arbeit, als...

So erstellen Sie Ihr eigenes Image mit Dockerfile

1. Erstellen Sie ein leeres Verzeichnis $ cd /hom...

Dieser Artikel hilft Ihnen, den Quellcode von PReact10.5.13 zu verstehen

Inhaltsverzeichnis render.js-Teil create-context....

Detaillierte Erklärung von mktemp, einem grundlegenden Linux-Befehl

mktemp Erstellen Sie auf sichere Weise temporäre ...

vue cli3 implementiert die Schritte der Verpackung nach Umgebung

Das mit CLI3 erstellte Vue-Projekt wird als Nullk...

MySQL 5.6.37 (zip) Download Installationskonfiguration Grafik-Tutorial

In diesem Artikel finden Sie das Download-, Insta...

HTML-Basis-URL-Tag

Seine Funktion besteht darin, einen globalen Stil ...

Zusammenfassung der Situationen, in denen MySQL-Indizes nicht verwendet werden

Indextypen in MySQL Im Allgemeinen können sie in ...

Einführung in die Cloud-native-Technologie Kubernetes (K8S)

Inhaltsverzeichnis 01 Was ist Kubernetes? 02 Der ...