Vue implementiert Div-Rad zum Vergrößern und Verkleinern

Vue implementiert Div-Rad zum Vergrößern und Verkleinern

Implementieren Sie das Vergrößern und Verkleinern des Div-Rads im Vue-Projekt, Drag-Effekt, ähnlich dem Canvas-Effekt

1. Importieren Sie das Plug-In „vue-draggable-resizable“ und klicken Sie hier, um die GitHub-Adresse einzugeben.

1), npm install --save vue-draggable-resizable
2) In der Datei main.js

Importieren Sie VueDraggableResizable von „vue-draggable-resizable“.
importiere „vue-draggable-resizable/dist/VueDraggableResizable.css“
Vue.component('vue-draggable-resizable', VueDraggableResizable)

3) Verwendung in Vue-Datei

Haupt-JS:

Vue von „vue“ importieren
App aus „./App“ importieren
Router aus „./router“ importieren
Vue.config.productionTip = falsch

// ich anzeigen
Importiere ViewUI aus „View-Design“.
importiere „view-design/dist/styles/iview.css“;
Vue.use (Ansichtsbenutzeroberfläche)

// Ziehen, Zoomen, Canvas-Plugin, importiere VueDraggableResizable von „vue-draggable-resizable“
importiere „vue-draggable-resizable/dist/VueDraggableResizable.css“
Vue.component('vue-draggable-resizable', VueDraggableResizable)

neuer Vue({
  el: '#app',
  Router,
  Komponenten: { App },
  Vorlage: '<App/>'
})

Vue-Datei: Konzentrieren Sie sich einfach auf die Einführung des Konfigurationselements der Komponente „vue-draggable-resizable“ und der Methoden „handleTableWheel“ und „tableZoom“ .

<Vorlage>
    <div Klasse="ist">
        <div
            Stil="Höhe: 800px; Breite: 100 %; Rahmen: 1px durchgezogen #000; Position: relativ; Überlauf: ausgeblendet;"
        >
            <!-- Komponenten importieren. :lock-aspect-ratio="true": Seitenverhältnis sperren:resizable="false": nicht skalierbar -->
            <vue-ziehbar-größenveränderbar
                w="auto"
                h="auto"
                :Raster="[20,40]"
                :x="10"
                :y="10"
                :resizable="false"
            >
                <div Klasse="Tabelle" ref="Tabelle" @wheel.prevent="handleTableWheel($event)">
                 <-- iview-Tabelle, egal, jedes div reicht aus -->
                    <Tabelle
                        :Spalten="Spalten1"
                        :Daten="Daten1"
                        Größe="klein"
                        :disabled-hover="wahr"
                        Grenze
                    >
                        <template slot-scope="{ Zeile, Index }" slot="Name">
                            <Tooltip :content="row.name" placement="top" übertragen>
                                <span class="name" @click="handleCellClick(row)">{{ row.name }}</span>
                            </Tooltip>
                        </Vorlage>
                    </Tabelle>
                </div>
            </vue-draggable-resizable>
        </div>
    </div>
</Vorlage>

<Skript>
importiere VueDraggableResizable von „vue-draggable-resizable“;
Standard exportieren {
    Name: "ist",
    Daten() {
        zurückkehren {
            Spalten1: [
                {
                    Titel: "Name",
                    Steckplatz: "Name",
                    Breite: 120
                },
                {
                    Titel: "Alter",
                    Schlüssel: "Alter",
                    Breite: 120
                },
                {
                    Titel: "Adresse",
                    Schlüssel: "Adresse",
                    Breite: 120
                },
                {
                    Titel: "Name",
                    Schlüssel: "Name",
                    Breite: 120
                },
                {
                    Titel: "Alter",
                    Schlüssel: "Alter",
                    Breite: 120
                },
                {
                    Titel: "Adresse",
                    Schlüssel: "Adresse",
                    Breite: 120
                },
                {
                    Titel: "Name",
                    Schlüssel: "Name",
                    Breite: 120
                },
                {
                    Titel: "Alter",
                    Schlüssel: "Alter",
                    Breite: 120
                },
                {
                    Titel: "Adresse",
                    Schlüssel: "Adresse",
                    Breite: 120
                }
            ],
            Daten1: [
                {
                    Name: "John Brown",
                    Alter: 18,
                    Adresse: "New York No. 1 Lake Park"
                },
                {
                    Name: "Jim Green",
                    Alter: 25,
                    Adresse: "London No. 1 Lake Park",
                    Zellklassenname: {
                        Alter: "Demo-Tabelle-Info-Zellen-Alter",
                        Adresse: "Demo-Tabelle-Info-Zellenadresse"
                    }
                },
                {
                    Name: "Joe Black",
                    Alter: 30,
                    Adresse: "Sydney No. 1 Lake Park"
                },
                {
                    Name: "Jon Snow",
                    Alter: 26,
                    Adresse: "Ottawa No. 2 Lake Park",
                    Zellklassenname: {
                        Name: "Demo-Tabelleninfo-Zellenname"
                    }
                },
                {
                    Name: "John Brown",
                    Alter: 18,
                    Adresse: "New York No. 1 Lake Park"
                },
                {
                    Name: "Jim Green",
                    Alter: 25,
                    Adresse: "London No. 1 Lake Park",
                    Zellklassenname: {
                        Alter: "Demo-Tabelle-Info-Zellen-Alter",
                        Adresse: "Demo-Tabelle-Info-Zellenadresse"
                    }
                },
                {
                    Name: "Joe Black",
                    Alter: 30,
                    Adresse: "Sydney No. 1 Lake Park"
                },
                {
                    Name: "Jon Snow",
                    Alter: 26,
                    Adresse: "Ottawa No. 2 Lake Park",
                    Zellklassenname: {
                        Name: "Demo-Tabelleninfo-Zellenname"
                    }
                }
            ]
        };
    },
    montiert() {},
    Methoden: {
        handleTableWheel(Ereignis) {
            lass obj = diese.$refs.table;
            gib dies zurück.tableZoom(Objekt, Ereignis);
        },
        tableZoom(Objekt, Ereignis) {
            // Der Standardwert liegt am Anfang bei 100 %
            lass zoom = parseInt(obj.style.zoom, 10) || 100;
            //Drehen Sie das Rad einmal und der Wert von wheelDelta erhöht oder verringert sich um 120
            zoom += event.wheelDelta / 12;
            wenn (Zoom > 0) {
                obj.style.zoom = zoom + "%";
            }
            gibt false zurück;
        },
        //Klick-Zellenereignis (wird verwendet, um zu testen, ob Ziehen das Standardereignis der Tabelle blockiert, was irrelevant ist)
        handleCellClick(Zeile) {
            this.$Message.info("Sie haben geklickt" + row.name);
        }
    }
};
</Skript>

<style scoped lang="weniger">
.Ist {
    .Tisch {
        .Name {
            Cursor: Zeiger;
        }
    }
}
// iview-Tabellenstil: einfach von der offiziellen iview-Website kopieren, es spielt keine Rolle/tief/ .ivu-table {
    .demo-table-info-row td {
        Hintergrundfarbe: #2db7f5;
        Farbe: #fff;
    }
    td.demo-Tabelle-Info-Spalte {
        Hintergrundfarbe: #2db7f5;
        Farbe: #fff;
    }
    .demo-table-error-row td {
        Hintergrundfarbe: #ff6600;
        Farbe: #fff;
    }
    .demo-table-info-cell-name {
        Hintergrundfarbe: #2db7f5;
        Farbe: #fff;
    }
    .demo-table-info-cell-age {
        Hintergrundfarbe: #ff6600;
        Farbe: #fff;
    }
    .demo-table-info-cell-address {
        Hintergrundfarbe: #187;
        Farbe: #fff;
    }
}
// Entferne den Div-Rand im canvas.vdr {
    Rand: keiner;
}
</Stil>

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:
  • Vue implementiert die Funktionen Vergrößern, Verkleinern und Ziehen
  • Vue verwendet SVG-Dateien als Ergänzung zu -svg-Vergrößerungs- und Verkleinerungsvorgängen (mit d3.js).
  • Beispiel für die Funktion zum Vergrößern und Verkleinern von Entwicklungsdiagrammen in Vue.js+Echarts
  • Detaillierte Erläuterung der Verwendung der Drag & Drop-Zoom-Komponente für Vue-Bilder

<<:  VirtualBox CentOS7.7.1908 Python3.8 Build Scrapy-Entwicklungsumgebung [grafisches Tutorial]

>>:  Grafisches Tutorial zur Installation der MySQL 8.0.13-Dekomprimierungsversion unter Windows

Artikel empfehlen

Detaillierte Erklärung der MySQL-Injektion ohne Kenntnis des Spaltennamens

Vorwort Ich habe in letzter Zeit das Gefühl, dass...

So stellen Sie Node.js mit Docker bereit

Vorwort Node wird als mittlere Schicht im Projekt...

HTML erstellt eine einfache und schöne Anmeldeseite

Schauen wir uns das zunächst einmal an. HTML Quel...

Der Unterschied und die Wahl zwischen Datum und Uhrzeit und Zeitstempel in MySQL

Inhaltsverzeichnis 1 Unterschied 1.1 Raumbelegung...

Schritte zum Ändern des MySQL-Datenbankdatendateipfads unter Linux

Nach der Installation der MySQL-Datenbank mit der...

So installieren Sie den Zookeeper-Dienst auf einem Linux-System

1. Erstellen Sie den Ordner /usr/local/services/z...

So erstellen Sie eine Ansicht in MySQL

Grundlegende Syntax Sie können eine Ansicht mit d...

Zusammenfassung der wichtigsten Erkenntnisse des Vue-Entwicklungshandbuchs

Inhaltsverzeichnis Überblick 0. Grundlagen von Ja...

Interviewer stellen häufig Fragen zum Lebenszyklus von React

React-Lebenszyklus Zwei Bilder zum besseren Verst...

Unsere Gedanken zur Karriere als UI-Ingenieur

Ich bin seit langer Zeit depressiv, warum? Vor ein...

Docker-Container-Protokollanalyse

Containerprotokolle anzeigen Verwenden Sie zunäch...