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

Tutorial zur Verwendung des Frameset-Tags in HTML

Frameset-Seiten unterscheiden sich etwas von norm...

Lösung für das 404/503-Problem beim Anmelden bei TeamCenter12

TeamCenter12 gibt das Kontokennwort ein und klick...

Ein einfaches Beispiel für die MySQL-Suche nach Daten im Umkreis von N Kilometern

Gemäß dem Koeffizienten von Pi und dem Radius der...

MySQL 8.0.11 Installationshandbuch für Mac

MAC installiert mysql8.0, der spezifische Inhalt ...

Nginx-Überwachungsprobleme unter Linux

Nginx-Installation Stellen Sie sicher, dass die v...

Detailliertes Tutorial zum Löschen von Linux-Benutzern mit dem Befehl userdel

Was ist Serdel userdel ist ein Low-Level-Tool zum...

5 coole und praktische Einführung in HTML-Tags und -Attribute

Tatsächlich handelt es sich auch hier um einen Cl...

Installieren Sie Mininet aus dem Quellcode auf Ubuntu 16.04

Mininet Mininet ist eine leichtgewichtige, softwa...

Modulare CSS-Lösung

Es gibt wahrscheinlich ebenso viele modulare Lösu...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.23

Dieser Artikel zeichnet den detaillierten Install...