Das mobile Vue-Terminal realisiert den gesamten Prozess des Bearbeitens und Löschens nach links

Das mobile Vue-Terminal realisiert den gesamten Prozess des Bearbeitens und Löschens nach links

Vorwort

Je nach Projektbedarf wird Vue-Touch verwendet, um eine Wischfunktion zum Bearbeiten und Löschen mit Linksbewegungen für das mobile Vue-Terminal zu implementieren. Schauen wir uns ohne weiteres zuerst das Effektdiagramm und dann den Code an!

So geht's:

Schritt 1: vue-touch installieren

npm installiere vue-touch@next --save

Schritt 2: In main.js importieren

importiere VueTouch von „vue-touch“;
Vue.use(VueTouch, {
  Name: „v-touch“
});

Schritt 3: Verwenden Sie (verwenden Sie V-Touch, um den Inhalt, den Sie löschen möchten, durch Wischen nach links zu umbrechen)

<div Klasse="wrap">
      <v-berühren
        Stil="Rand unten:10px"
        v-on:panstart="onPanStart(Schlüssel)"
        v-on:panmove="beiPanMove"
        v-on:panend="amPanEnde"
        v-for="(Element, Schlüssel) in Liste"
        :Schlüssel="Schlüssel"
      >
  <!-- Das folgende Div ist der Inhalt der Elemente, die durch Wischen nach links auf meiner Seite gelöscht werden müssen. Sie können es durch Ihr eigenes ersetzen-->
        <div class="item df_sb item-p" :style="activeId === Schlüssel ? Wischen : ''">
          <p Klasse="left-img">
            <img :src="item.image_url" alt>
          </p>
          <p class="url" v-if="item.redirect_url != '' ">{{item.redirect_url}}</p>
          <p class="city nothave" v-else>Keine</p>
          <p class="Stadt">{{item.stadt}}</p>
          <div Klasse="edit-delete df_sad" :ref="'editBtn' + key">
            <div Klasse="bearbeiten" @click="editFun('bearbeiten',item.id,item.image_url,item.redirect_url)">
              <img src="../../assets/images/adver/ic_xiugai.png" alt>
            </div>
            <p Klasse = "Editierzeile"></p>
            <div Klasse="ad-delete" @click="deleteFun(Schlüssel,item.id)">
              <img src="../../assets/images/adver/ic_shanchu.png" alt>
            </div>
          </div>
        </div>
      </v-berühren>
    </div>

Schritt 4: Definieren Sie Variablen und Methoden. Sie können den folgenden Code direkt kopieren, die unnötigen löschen und durch Ihre eigenen ersetzen und die notwendigen behalten.

<Skript>
importiere httpApi von "../../http/httpApi";
Standard exportieren {
  Name: "",
  Daten() {
    zurückkehren {
      swipe: "", // Gleitstil wd: 0, // die Summe der Breiten der Bearbeiten- und Löschen-Buttons swipeWd: 0, // die Distanz, die Sie gerutscht sind activeId: "", // eigentlich die letzte Aktivitäts-ID
    // Die obigen vier Variablen müssen beibehalten werden, die folgenden drei können gelöscht werden: Seite 1,
      Größe: 10,
      Liste: []
    };
  },
  Methoden: {
//Listendaten anfordern getList($state) {
      let params = neue URLSearchParams();
      params.append("Seite", diese.Seite);
      params.append("Größe", diese.Größe);
      dies.$post(httpApi.BANNERLIST, Parameter)
        .then(res => {
          wenn (res.code == 10000) {
            wenn (res.data) {
              diese.Liste = diese.Liste.concat(res.data.list);
              diese.seite++;
              wenn (res.data.list.length === 10) {
                $zustand.geladen();
              } anders {
                $zustand.abgeschlossen();
              }
            } anders {
              $zustand.abgeschlossen();
            }
          } anders {
            $zustand.abgeschlossen();
          }
        })
        .catch(err => {
          console.log(fehler);
        });
    },
    // Bearbeiten editFun(Typ, Bild-ID, Bild, URL) {
      dies.$router.push({
        Pfad: "/issueAdvertising",
      });
    },
    // löschen deleteFun(index, image_id) {
      this.activeId = ""; // Letzte Aktivitäts-ID leeren let params = new URLSearchParams();
      params.append("agent_id", diese.id);
      params.append("Bild-ID", Bild-ID);
      dies.$post(httpApi.DELETEBANNER, Parameter)
        .then(res => {
          wenn (res.code == 10000) {
// Obwohl die Anforderung zum Löschen der Schnittstelle eines der Elemente in der Liste löscht, sind immer noch // Elemente auf der Seite vorhanden. Daher müssen diese auch im lokalen Array gelöscht werden, damit alles perfekt ist. Die folgende Codezeile ist wichtiger und kann an der Stelle geschrieben werden, an der Sie die Schnittstelle erfolgreich gelöscht haben: this.list.splice(index, 1); 
            this.modal.toastFun("Erfolgreich gelöscht");
          } sonst wenn (res.code == 20000) {
            dies.modal.toastFun(res.message);
          }
        })
        .catch(err => {});
    },
 
// Die folgenden drei Methoden werden alle unverändert kopiert // gleitende Position onPanStart(id) {
      event.preventDefault();
      // Die richtige Schaltflächenbreite ermitteln let str = "editBtn" + id;
      dies.wd = 1,2 * dies.$refs[str][0].offsetWidth;
      // Initialisierung if (this.activeId != id) {
        dies.swipe = "transformieren:übersetzenX(0px)";
        dies.swipeWd = 0;
      }
      diese.activeId = ID;
    },
//Gleitposition onPanMove(event) {
      event.preventDefault();
      sei deltaX = Ereignis.deltaX;
      // Komponente bewegt sich nach links bis zur maximalen Distanz if (deltaX < 0 && deltaX > -this.wd) {
        //Nach links schieben this.swipe = "transform:translateX(" + deltaX + "px)";
        dies.swipeWd = deltaX;
      }
 
      wenn (deltaX > 0 && deltaX <= this.wd && this.swipeWd < 0) {
        //Nach rechts wischen let wx = deltaX + this.swipeWd;
        dies.swipe = "transform:translateX(" + wx + "px)";
      }
    },
 // Endposition onPanEnd(event) {
      event.preventDefault();
      // Bestimmen Sie, ob die nach links zurückgelegte Distanz größer als die Hälfte ist. let deltaX = event.deltaX;
      wenn (deltaX < 0) {
        wenn (deltaX <= -this.wd / 2) {
          //Mehr als die Hälfte nach links schieben this.swipe = "transform:translateX(" + -this.wd + "px)";
          dies.swipeWd = -this.wd;
        } anders {
          dies.swipe = "transformieren:übersetzenX(0px)";
          dies.swipeWd = 0;
        }
      } anders {
        wenn (this.swipeWd < 0 und deltaX >= this.wd / 2) {
          //Mehr als die Hälfte nach links schieben this.swipe = "transform:translateX(0px)";
          dies.swipeWd = 0;
        } anders {
          this.swipe = "transform:translateX(" + this.swipeWd + "px)";
        }
      }
    }
  },
 
};
</Skript>

Stil

Ich habe nur den CSS-Stil des obigen Codes gepostet. Bitte löschen Sie ihn entsprechend Ihren Anforderungen. Behalten Sie, was Sie brauchen, löschen Sie, was Sie nicht brauchen, und ändern Sie ihn selbst, wenn Sie ihn ändern müssen

.wickeln {
  Breite: 100 %;
  Höhe: 100%;
  Überlauf: versteckt;
}
.Artikel {
  Polsterung links: 40px;
  Höhe: 120px;
  Hintergrund: #ffffff;
  Elemente ausrichten: zentrieren;
  Flex-Richtung: erben;
  .links-img {
    Breite: 120px;
    Höhe: 100px;
    Überlauf: versteckt;
    img {
      Mindestbreite: 120px;
      Höhe: 100px;
    }
  }
}
.URL {
  Breite: 400px;
  Polsterung: 10px 30px 0;
  Box-Größe: Rahmenbox;
  Zeilenumbruch: Wort umbrechen;
  Textausrichtung: zentriert;
  Überlauf: versteckt;
  Textüberlauf: Auslassungspunkte;
  Leerzeichen: Nowrap;
}
.Stadt {
  Textausrichtung: zentriert;
  Mindestbreite: 100px;
}
.Artikel-p {
  Farbe: #333333;
  Schriftgröße: 22px;
}
.nichthaben {
  Farbe: #999999;
}
.Hinweis {
  Höhe: 40px;
  Elemente ausrichten: zentrieren;
  Rand unten: 30px;
}
.Linie {
  Breite: 250px;
  Höhe: 1px;
  Hintergrund: #999999;
  Deckkraft: 0,5;
}
.Artikel {
  Breite: 120 %; // mehr als 100 %
  Übergang: 0,1 s Leichtigkeit 0 s; // Übergangseffekt}
.edit-line {
  Breite: 2px;
  Höhe: 80px;
  Hintergrund: rgba(255, 255, 255, 1);
}
.bearbeiten-löschen {
  Breite: 160px;
  Höhe: 100%;
  Hintergrund: rgba(255, 126, 34, 1);
  Deckkraft: 0,8;
  Elemente ausrichten: zentrieren;
}
.bearbeiten,
.ad-delete {
  img {
    Breite: 42px;
    Höhe: 42px;
  }
}
.add-btn {
  Breite: 200px;
  Höhe: 80px;
  Hintergrund: rgba(255, 126, 34, 1);
  Kastenschatten: 0px 0px 5px 0px rgba (221, 221, 236, 1);
  Rahmenradius: 40px;
  Textausrichtung: zentriert;
  Zeilenhöhe: 80px;
  Farbe: #ffffff;
  Schriftgröße: 30px;
  Position: fest;
  unten: 8 %;
  links: 50%;
  transformieren: übersetzenX(-50%);
}

Zusammenfassen

Bei Bedarf können Sie es nehmen und entsprechend Ihren Anforderungen geringfügige Änderungen vornehmen. Es ist sehr ausführlich geschrieben. Dies ist das Ende dieses Artikels über den gesamten Prozess der Implementierung des Bearbeitens und Löschens durch Wischen nach links auf dem mobilen Vue-Terminal. Weitere relevante Inhalte zum Bearbeiten und Löschen durch Wischen nach links in Vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Vue imitiert die QQ-Funktion „Nach links wischen, um Komponenten zu löschen“
  • Vue verwendet Mint UI, um den Löscheffekt CellSwipe durch Wischen nach links zu implementieren
  • Implementierungscode für die Komponente „Löschen durch Wischen nach links“ von Vue.js auf Mobilgeräten
  • Implementieren Sie die Löschfunktion durch Wischen nach links basierend auf vue2
  • Verwenden Sie Vue, um den Löscheffekt durch Wischen nach links auf dem mobilen Endgerät mit Quellcode zu implementieren
  • Das Mpvue-Applet imitiert das Wischen nach links von QQ, um die oberste Komponente zu löschen
  • Beispielcode für die Löschfunktion „Nach links wischen“ von Vue
  • Vue-Projekt implementiert Löschfunktion durch Wischen nach links (vollständiger Code)

<<:  So generieren Sie Zufallszahlen mit angegebenen Ziffern in MySQL und so generieren Sie Zufallszahlen in Stapeln

>>:  So importieren und exportieren Sie Docker-Images

Artikel empfehlen

Tabelle der durch hasLayout verursachten CSS-Fehler

Der IE hat schon seit längerem Probleme. Als alle ...

MySQL Order By-Codebeispiel für Sortierregeln für mehrere Felder

Sag es im Voraus Aus einer Laune heraus möchte ic...

So konfigurieren Sie Nginx, um die Zugriffshäufigkeit derselben IP zu begrenzen

1. Fügen Sie den folgenden Code zu http{} in ngin...

CSS, um horizontale Linien auf beiden Seiten des mittleren Textes zu erreichen

1. Die Eigenschaft „vertical-align“ erzielt folge...

Einfache Implementierung zum Ausblenden der Bildlaufleiste in HTML

1. HTML-Tags mit Attributen XML/HTML-CodeInhalt i...

Erfahren Sie, wie Sie Docker unter Windows 10 Home Edition installieren.

Als ich die Bücher über Redis und Spring Cloud Al...

JS implementiert einfache Addition und Subtraktion von Warenkorbeffekten

In diesem Artikelbeispiel wird der spezifische JS...

Analyse der allgemeinen Konfigurationsmethoden für virtuelle Hosts von Apache

1. Installation und Konfiguration des Apache-Serv...