Als ich kürzlich vue verwendete, musste ich feststellen, dass die Breite der linken und rechten Divs durch Ziehen des mittleren Teils angepasst werden kann. In diesem Artikel wird dies organisiert und mit Ihnen geteilt. Die Einzelheiten lauten wie folgt: Rendern Komponenten zerlegenFlex-Layout als Ganzes verwenden Linkes Feld
Rechtes Feld
Zerlegung der EingabeparameterRequisiten
Spielautomaten
Konkrete UmsetzungWie ziehen?Fügen Sie zwischen dem linken und rechten Bereich ein verstecktes Feld hinzu und verstecken Sie dieses Feld im Box-Shadow. In diesem Div werden bestimmte Ereignisse implementiert <div id="line" class="w-2 cursor-move hidden md4:block"onMousedown={hnadleMouseDown}> </div> Ereignisüberwachungconst hnadleMouseDown = (evt: MouseEvent) => { /* Startpunkt abrufen und speichern*/ let { SeiteX, SeiteY } = evt; BasisPosition.SeiteX = SeiteX; BasisPosition.seiteY = SeiteY; /* Auf Mausbewegungsereignisse achten*/ document.addEventListener("mousemove", handleMouseMove); document.addEventListener("mouseup", handleMouseUp); }; const handleMouseMove = evt => { /* Verhindern Sie, dass Standardereignisse des Browsers die Gestenfunktion des Browsers auslösen*/ evt.preventDefault(); /* Stellen Sie den Timer ein, um ein mehrmaliges Reflowing des DOM zu verhindern*/ Zeitüberschreitung löschen(Timer.Wert); timer.value = setTimeout(() => { let { SeiteX } = evt; const baseDiv = document.querySelector(".right-border-shadow"); /* Prozessbreite, ob sie zwischen dem Maximal-/Minimalwert liegt*/ let baseWidth: Zahl | undefiniert = Zahl(BasisDiv?.ClientBreite) + (SeiteX - BasisPosition.SeiteX); Basisbreite = Basisbreite > Zahl (Eigenschaften?.maxBreite) – Eigenschaften.maxBreite: Basisbreite; Basisbreite = Zahl (Basisbreite) < Zahl (Eigenschaften?.Mindestbreite) ? props.minBreite : Basisbreite; baseDiv?.setAttribute("Stil", `Breite: ${baseWidth}px`); /* Ereignis „Breite geändert“ ausgeben */ ctx.emit("Wirkstoffend"); /* Von Speicher zu Speicher */ setStore(Basisbreite); }, 50); }; const handleMouseUp = evt => { /* Nach Beendigung des Ziehens das Abhören des Ereignisses abbrechen und die endgültige Breite ausgeben*/ const width = document.querySelector(".right-border-shadow")?.clientWidth; document.removeEventListener("mousemove", handleMouseMove); Dokument.removeEventListener("mouseup", handleMouseUp); ctx.emit("Drugend", Breite); }; BreitenverarbeitungStil={`Breite:${ store.get("geteilte Breite") ? store.get("geteilte Breite") : props.minBreite ? props.minBreite : 384 }px`} Optimierung Manuelles Ändern der Browserfensterbreite nächsterTick(() => { ctx.emit("laden", ctx); MutationObserver = Fenster.MutationObserver; wenn (MutationObserver) { /* Änderungen im Browserfenster überwachen, diese API ist in einigen Fällen erforderlich */ mo = neuer MutationObserver(Funktion() { const __wm = document.querySelector("#rezie-id"); // __canvasWM nur erneut aufrufen, wenn sich das __wm-Element ändert wenn (!__wm) { //Vermeiden Sie, ständig mo.disconnect() auszulösen; mo = null; ctx.emit("Größe ändern"); } }); mo.observe(document.querySelector("#rezie-id"), { Attribute: true, Teilbaum: wahr, Kinderliste: wahr, }); } }); Nicht wirksam, bitte beraten Sie InsektenBeim Abrufen des Slot-Elementknotens des untergeordneten Elements im OnMounted-Hook der übergeordneten Komponente ist ein Fehler aufgetreten. Der Wert ist null. Die aktuelle Lösung besteht darin, ein Ladeereignis im onMounted-Hook der untergeordneten Komponente auszulösen, und die übergeordnete Komponente verwendet onLoad, um die nachfolgende Logik zu verarbeiten. Git-AdresseLageradresse Vorschauadresse Dies ist das Ende dieses Artikels über die Implementierung der Vue3-Komponente zum Teilen des linken und rechten Panels. Weitere verwandte Inhalte zum Vue3-Inhalt zum Teilen des linken und rechten Panels finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Fehlerbehebung und Lösungen für das Problem der MySQL-Autoinkrement-ID-Übergröße
>>: So installieren Sie pyenv unter Linux
Inhaltsverzeichnis Überblick Definition Instanzme...
Linux-Bibliothek generieren Die Linux-Version ver...
Bei der täglichen Wartung werden Threads häufig b...
Schließen Sie beim Schreiben einer Docker-Datei e...
Vorbereitung vor der Installation Der Hauptzweck ...
Wenn MySQL DDL-Operationen wie „Alter Table“ ausf...
1. Nachfrage Ein Bild bewegt sich in einer Endlos...
Die automatische Inkrementierung der Primärschlüs...
Index Condition Pushdown (ICP) wird in MySQL 5.6 ...
Verwenden des Docker-Befehls „run“ docker run -d ...
Vorwort Der von mir verwendete Computer ist ein M...
Vorwort Für Datei- oder Verzeichnisberechtigungen...
Dieser Artikel beschreibt die Installations- und ...
Hintergrund: Einige Experimente müssen auf dem Se...
Der Ursprung des Problems Das erste Mal, dass ich...