Heim > Web-Frontend > View.js > Hauptteil

Wie kann ich mit Vue zusammenklappbare und Drag-and-Drop-Sortiereffekte erzielen?

WBOY
Freigeben: 2023-06-27 11:27:21
Original
1698 Leute haben es durchsucht

In der Frontend-Entwicklung ist es eine häufige Anforderung, Falt- und Drag-and-Drop-Sortiereffekte zu erzielen. Diese Funktion lässt sich mit dem Vue-Framework einfach und schnell implementieren. In diesem Artikel wird erläutert, wie Sie mit Vue Falt- und Drag-and-Drop-Sortiereffekte erzielen, wodurch die Seite schöner und benutzerfreundlicher aussieht.

1. Falteffekt

1.1 Schreiben Sie HTML- und CSS-Code

Erstellen Sie zunächst die Elemente, die gefaltet werden müssen, wie unten gezeigt:

<div class="collapse">
  <div class="header">折叠标题</div>
  <div class="content">折叠内容</div>
</div>
Nach dem Login kopieren

Dann verwenden Sie CSS, um diese Elemente zu formatieren.

.collapse {
  border: 1px solid #ccc;
}

.header {
  background-color: #eee;
  cursor: pointer;
  padding: 10px;
}

.content {
  padding: 10px;
}
Nach dem Login kopieren

Hier haben wir einen Rahmen zum Akkordeonfeld hinzugefügt und die Hintergrundfarbe und den Cursorstil festgelegt. Gleichzeitig haben wir dem Titel ein Klickereignis hinzugefügt, um den Anzeige-/Ausblendungsstatus des Inhalts zu wechseln, wenn auf den Titel geklickt wird.

1.2 Vue-Komponente hinzufügen

Als nächstes müssen wir eine Vue-Komponente für den zusammenklappbaren Effekt erstellen. Zuerst wollen wir Vue importieren:

import Vue from 'vue';
Nach dem Login kopieren
Nach dem Login kopieren

Dann können wir eine Komponente mit der Vue.component()-Methode erstellen:

Vue.component('collapse', {
  props: {
    header: String,
    content: String,
  },
  data() {
    return {
      show: false, // 初始状态为隐藏
    };
  },
  methods: {
    toggle() {
      this.show = !this.show;
    },
  },
  template: `
    <div class="collapse">
      <div class="header" @click="toggle">{{ header }}</div>
      <div class="content" v-show="show">{{ content }}</div>
    </div>
  `,
});
Nach dem Login kopieren

Hier haben wir eine Komponente namens „collapse“ erstellt. Es kann zwei Attribute akzeptieren: Header und Inhalt. Mit der Methode data() haben wir eine Show-Variable erstellt, deren Anfangswert false ist, was angibt, dass der Inhalt der Faltschachtel ausgeblendet ist. Anschließend verwenden wir die Methode toggle(), um den Wert der Show-Variablen umzuschalten, wenn auf den Titel geklickt wird. Schließlich verwenden wir das Template-Attribut, um die HTML-Struktur der Komponente zu definieren.

1.3 Komponenten in HTML verwenden

Abschließend müssen wir nur noch diese Komponente in HTML verwenden:

<collapse header="折叠标题" content="折叠内容"></collapse>
Nach dem Login kopieren

Hier übergeben wir zwei Attribute an die Komponente: Header und Inhalt. Dies wird in der Komponente als Titel bzw. Inhalt der Minimierungsbox angezeigt. Nach einem Klick auf den Titel wird der Inhalt erweitert bzw. reduziert.

2. Drag-and-Drop-Sortiereffekt

2.1 HTML- und CSS-Code schreiben

Werfen wir zunächst einen Blick darauf, wie der Drag-and-Drop-Effekt erzielt wird. Zuerst erstellen wir die Elemente, die im HTML sortiert werden müssen, wie unten gezeigt:

<div id="app">
  <div class="sortable">
    <div v-for="(item, index) in items" :key="item.id" class="item" :data-index="index">{{ item.name }}</div>
  </div>
</div>
Nach dem Login kopieren

Dann formatieren wir diese Elemente mithilfe von CSS-Stilen.

.sortable {
  display: flex;
  flex-wrap: wrap;
  margin: 20px 0;
}

.item {
  background: #eaeaea;
  border: 1px solid #ccc;
  cursor: grab;
  margin: 10px;
  padding: 10px;
  text-align: center;
  width: 100px;
}
Nach dem Login kopieren

Hier verwenden wir ein flexibles Layout, damit Elemente automatisch umbrochen werden können. Jedes Element hat einen grauen Hintergrund und einen grauen Rand. Wenn Sie mit der Maus darüber fahren, ändert sich der Cursorstil in „Greifen“, was bedeutet, dass es gezogen werden kann.

2.2 Vue-Komponente hinzufügen

Um den Drag-and-Drop-Sortiereffekt zu erzielen, müssen wir auch eine Vue-Komponente hinzufügen. Wieder wollen wir Vue importieren:

import Vue from 'vue';
Nach dem Login kopieren
Nach dem Login kopieren

Dann erstellen wir eine Komponente mit der Vue.component()-Methode:

Vue.component('sortable', {
  data() {
    return {
      items: [
        { id: 1, name: 'Item 1' },
        { id: 2, name: 'Item 2' },
        { id: 3, name: 'Item 3' },
        { id: 4, name: 'Item 4' },
        { id: 5, name: 'Item 5' },
      ],
    };
  },
  mounted() {
    const sortable = new Sortable(this.$el, {
      animation: 150,
      onEnd: event => {
        const item = this.items.splice(event.oldIndex, 1)[0];
        this.items.splice(event.newIndex, 0, item);
      },
    });
  },
  template: `
    <div class="sortable">
      <div v-for="(item, index) in items" :key="item.id" class="item" :data-index="index">{{ item.name }}</div>
    </div>
  `,
});
Nach dem Login kopieren

Hier erstellen wir eine Komponente namens „sortable“. Wir verwenden die Methode data(), um ein Items-Array zu erstellen, das die zu sortierenden Elemente enthält. Anschließend verwenden wir die Methode mount(), um die Sortable-Bibliothek nach dem Laden der Komponente zu initialisieren und auf das Stammelement der Komponente anzuwenden. Wir verwenden das Template-Attribut, um die HTML-Struktur der Komponente zu definieren.

Am Ende des Ziehens verwenden wir die Methode onEnd(), um das Elementarray zu aktualisieren. Wir verwenden die Methode splice(), um ein Element aus dem Array items zu entfernen und zurückzugeben, und verwenden die Methode splice(), um das Element an einer neuen Position einzufügen.

2.3 Komponenten in HTML verwenden

Abschließend verwenden wir diese Komponente in HTML:

<sortable></sortable>
Nach dem Login kopieren

Dies zeigt uns die ziehbaren Elemente und ihre Sortierwirkung.

Zusammenfassung

In diesem Artikel haben wir vorgestellt, wie man mit Vue zusammenklappbare und Drag-and-Drop-Sortiereffekte erzielt. Diese Technologien können uns helfen, das Design der Seite schöner und benutzerfreundlicher zu gestalten. Diese Techniken sind sowohl für persönliche als auch für kommerzielle Projekte äußerst nützlich. Wir hoffen, dass dieser Artikel Ihnen hilft, besser zu verstehen, wie Sie mit Vue diese interaktiven Effekte erzielen und sie in zukünftigen Projekten anwenden können, um Ihre Seiten attraktiver und benutzerfreundlicher zu gestalten.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Vue zusammenklappbare und Drag-and-Drop-Sortiereffekte erzielen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!