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
In einem aktuellen Unternehmen besteht die Anford...
Als ich kürzlich für einen Kunden druckte, bat er ...
Es war schon immer sehr schwierig, Welleneffekte ...
Wo liegt meine Heimatstadt, wenn ich nach Nordwes...
Speichern Sie den folgenden Code als Standard-Home...
In vielen Projekten muss eine Countdown-Funktion ...
Frage: Wie erreiche ich mit Div+CSS und Positioni...
Inhaltsverzeichnis Problembeschreibung Frontend-S...
1. Nutzung auf höchster Ebene 1. Installieren Sie...
Linux erstellt NFS-Server Um den Datenaustausch z...
Quelle: https://medium.com/better-programming, Au...
Beschriftungsanzeigemodus (wichtig) Div- und Span...
1. Installation apt-get install mysql-server erfo...
Ich habe kürzlich gesagt, dass Design ein Gefühl d...