Bei der Verwendung der El-Tree-Komponente des Elements UI treten häufig die folgenden Probleme auf: Beim Rendern des El-Trees ist die Länge des Textinhalts inkonsistent, was dazu führt, dass der gesamte zu lange Text nicht angezeigt werden kann. Nach einigen Versuchen haben wir die folgenden drei Lösungen gefunden und Methode drei wird empfohlen. Methode 1: Der einfachste Weg, eine horizontale Bildlaufleiste festzulegenWirkung: Legen Sie den Stil für das Span-Tag des aktuellen Baumknotens fest. Überlauf: automatisch; // oder overflow-x: auto; Frage: Denn nur wenn der Überlauf in der innersten Spannebene festgelegt ist, kann die Anzeige des überschüssigen Teils effektiv gesteuert werden, was dazu führt, dass bei mehreren besonders langen Textteilen horizontale Bildlaufleisten angezeigt werden, was etwas hässlich ist. Selbst wenn Sie der oberen Etikettenebene einen Überlauf hinzufügen, ist es immer noch hässlich. Das Problem ist also nicht gelöst. Nächste Methode 2 (neu): Fügen Sie eine Ziehleiste hinzu, um die Breite des äußeren Containers zu ändernWirkung: Code: Beachten Sie, dass die ID-Bindung der vier Teile ausreicht. <el-container id="Abteilung"> <el-aside width="220px" id="drag-dept-left"> </el-beiseite> <div id="dragBar-dept" class="dragBar"></div> <el-main id="ziehen-dept-rechts" Klasse="ziehen-rechts"> </el-main> </el-container> CSS dient nur als Referenz. Ändern Sie die Breitensteuerung selbst. .dragBar { Breite: 3px; Höhe: 100%; Hintergrund: #01e4fd; Cursor: elektronische Größenänderung; } .nach rechts ziehen { Polsterung rechts: 0px; Breite: berechnet (100 % – 213 Pixel); } js-Aufruf montiert () { // Den Zoom-Schieberegler mit der entsprechenden Methodeneingabe (Schieberegler-ID, linke ID, rechte ID, äußere ID) einbinden dies.$_comFun.bindResize('dragBar-dept', 'drag-dept-links', 'drag-dept-rechts', 'dept') }, js globale Variablen exportiere standardmäßig neuen Vuex.Store({ Zustand: { // Ziehen Sie die Bildlaufleiste, um die Breite des inneren Divs zu ändern dragBar: false }, Mutationen: }, Aktionen: { }, Module: } }) öffentliche js-Methoden Store aus „../index“ importieren // Ziehen Sie den Maßstab, um die Breite des linken Divs zu ändern. Methode bindResize (barID, leftID, rightID, docID) { // Festlegen, ob die Flagge verschoben werden soll let removeFlag = false // Holen Sie sich das skalierte Div-Objekt auf der linken Seite let bar = document.getElementById(barID) let dragLeft = document.getElementById(leftID).style let dragRight = document.getElementById(rightID).style let doc = Dokument.getElementById(docID) let x = 0 // X- und Y-Achsenkoordinaten der Maus // Mount-Mausereignisse bar.addEventListener('mousedown', moveDownMouse, false) // Beachten Sie, dass die Bewegungs- und Mausfokusverlustereignisse an das DOM gebunden sein müssen. Wenn sie nur an die Leiste gebunden sind, sind sie nur wirksam, wenn sie sich bewegen/den Fokus auf der Leiste verlieren.doc.addEventListener('mousemove', mouseMove, false) doc.addEventListener('Maus hoch', Maus hoch, false) Funktion moveDownMouse (e) { entfernenFlag = wahr // Berechnen Sie die Koordinaten der aktuellen Maus und des Objekts nach dem Drücken des Elements x = e.clientX – bar.offsetWidth – dragLeft.width.replace('px', '') // Fokus erfassen, wenn „setCapture“ unterstützt wird // Ereignis festlegen // Ereignis binden, wenn (bar.setCapture) { bar.setCapture() bar.onmousemove = Funktion (ev) { Mausbewegung(ev || Ereignis) } bar.onmouseup = Maus hoch } anders { // bar.addEventListener('Mausbewegung', Mausbewegung, false) // bar.addEventListener('mouseup', Maus hoch, false) } // Verhindern, dass das Standardereignis eintritt e.preventDefault() store.state.dragBar = falsch } //Bewegungsereignisfunktion mouseMove (e) { wenn (entferneFlag) { // Das Universum ist im Betrieb unbesiegbar. let width = e.clientX - x wenn (Breite < 200) { dragLeft.width = "200px" } sonst wenn (Breite > 400) { dragLeft.width = "400px" } anders { dragLeft.width = Breite + 'px' } // Wenn die rechte Breite nicht berechnet wird, wird die Drag-Leiste gestaucht dragRight.width = 'calc(100% - ' + dragLeft.width + ')' } } //Stopp-Ereignisfunktion mouseUp () { entfernenFlag = false // Wenn ReleaseCapture unterstützt wird // Fokus freigeben // Ereignis entfernen // Ereignis deinstallieren if (bar.releaseCapture) { bar.releaseCapture() bar.onmousemove = bar.onmouseup = null } anders { // bar.removeEventListener('Mausbewegung', Mausbewegung, false) // bar.removeEventListener('mouseup', mouseUp, false) } store.state.dragBar = wahr } } Methode 2 (alt): Fügen Sie eine Ziehleiste hinzu, um die Breite des äußeren Containers zu ändernWirkung: Einen Ziehbalken hinzufügen <div id="DragBar"></div> Nachdem die aktuelle Komponente geladen wurde, binden Sie das Ereignis an die Drag-Leiste montiert () { // Zoom-Dragbar mit der entsprechenden Methode einbinden (Dragbar-Objekt, ID des linken Div) this.bindResize(document.getElementById('dragBar'), 'Menü') }, Methoden: { // Ziehen Sie den Maßstab, um die Breite des linken Divs zu ändern. Methode bindResize (bar, menu) { /* eslint-deaktivieren */ // Holen Sie sich das skalierte Div-Objekt auf der linken Seite let els = document.getElementById(menu).style let x = 0 // X- und Y-Koordinaten der Maus jQuery(bar).mousedown(function (e) { // Nach dem Drücken des Elements die Koordinaten der aktuellen Maus und des Objekts berechnen x = e.clientX - bar.offsetWidth - jQuery('#' + menu).width() // Fokus erfassen, wenn „setCapture“ unterstützt wird // Ereignis festlegen // Ereignis binden, wenn (bar.setCapture) { bar.setCapture() bar.onmousemove = Funktion (ev) { Mausbewegung(ev || Ereignis) } bar.onmouseup = Maus hoch } anders { jQuery(Dokument).binden('Mausbewegung', Mausbewegung).binden('Maushoch', Maushoch) } // Verhindern, dass das Standardereignis eintritt e.preventDefault() }) //Bewegungsereignisfunktion mouseMove (e) { // Das Universum befindet sich in einer superunbesiegbaren Berechnung els.width = e.clientX - x + 'px' } //Stopp-Ereignisfunktion mouseUp () { // Wenn ReleaseCapture unterstützt wird // Fokus freigeben // Ereignis entfernen // Ereignis deinstallieren if (bar.releaseCapture) { bar.releaseCapture() bar.onmousemove = bar.onmouseup = null } anders { jQuery(Dokument).aufheben('Mausbewegung', Mausbewegung).aufheben('Maushoch', Maushoch) } } /* eslint-aktivieren */ } } Frage: Die Methode ist gut, aber etwas umständlich. Was soll ich tun, wenn ich nur eine einfache Anzeige möchte und sie überhaupt nicht herumschleppen möchte? Nächste Methode 3: Verwenden Sie ..., um anzugeben, dass der vollständige Name angezeigt wird, wenn die Maus darüber bewegt wirdWirkung: Verfahren: Dies ist die erste Lösung, die mir bei einem Problem in den Sinn kommt, aber ich musste viele Umwege machen, bevor ich auf die richtige Spur kam. Da es im offiziellen El-Tree-Dokument des Element-UI keine Anleitung zum Einfügen eines Titel-Tags in einen Knoten gibt, habe ich den Quellcode geöffnet und ihn gezwungen, „title="node.name"" in den Span-Tag des entsprechenden Knotens zu schreiben, aber das hat nichts genützt. Bis ich den benutzerdefinierten Knoteninhalt sah, konnte ich, obwohl das offizielle Beispiel zum Einfügen und Löschen von Knoten verwendet wurde, das Klickereignis in ein Hover-Ereignis umwandeln, um den vollständigen Inhalt des Knotentextes anzuzeigen. Wenn ich mich dann dafür entscheide, den eingeschränkten Steckplatz einzufügen, stelle ich Folgendes fest: Dieses Problem ist endlich gelöst. Code: Verwenden Sie die el-tree-Komponente wie folgt: <el-tree ref="Baum" :data="treeMenus" :props="multiProps" :show-checkbox="true" :node-key="nodeId"> <span class="span-ellipsis" slot-scope="{ Knoten, Daten }"> <span :title="node.label">{{ node.label }}</span> </span> </el-Baum> Fügen Sie dem Span-Tag Stile hinzu und verwenden Sie ..., um anzugeben, dass der Text nicht vollständig angezeigt wird: .span-ellipsis { Breite: 100 %; Überlauf: versteckt; Leerzeichen: Nowrap; Textüberlauf: Auslassungspunkte; } Zusätzliche Hinweise: Wenn die Stileinstellung „.span-ellipsis“ ungültig ist, müssen Sie möglicherweise „display: block“ hinzufügen. Das heißt: .span-ellipsis { Breite: 100 %; Überlauf: versteckt; Leerzeichen: Nowrap; Textüberlauf: Auslassungspunkte; Anzeige: Block; } Da ich die El-Tree-Komponente des Elements UI verwende, ist der äußere Stil von Span standardmäßig auf „display: flex“ eingestellt. Daher besteht keine Notwendigkeit, die Anzeigeeigenschaft von Span festzulegen. Dies ist das Ende dieses Artikels über die Lösung des Problems der unvollständigen Anzeige von El-Tree-Text. Weitere verwandte Inhalte zur unvollständigen Anzeige von El-Tree-Text finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Grafisches Tutorial zur Installation und Konfiguration von mysql 8.0.18.zip (Windows 64 Bit)
Da einige Abhängigkeiten von OpenCV beim Ausführe...
Inhaltsverzeichnis 【Code-Hintergrund】 【Code-Imple...
1. So erstellen Sie einen Benutzer und ein Passwo...
1. Vorbereitung vor der Installation: 1.1 JDK ins...
Bei jeder Anmeldung am Testserver ist grundsätzli...
In diesem Artikel wird der spezifische Code für d...
Dieser Artikel beschreibt einen Digitaluhreffekt,...
Inhaltsverzeichnis 1. Reagieren.Children.map 2. R...
Warum brauchen wir virtuellen Dom? Virtual DOM wu...
Häufige Anwendungsszenarien Die Schnittstellen ak...
Hier ist der MySQL-Treiber mysql.data.dll Beachte...
Verwenden Sie MySQL proxies_priv (simulierte Roll...
Verwenden von UNION Die meisten SQL-Abfragen best...
Der Browser zeigt Bilder im TIF-Format an Code kop...
In diesem Artikel erfahren Sie, wie Sie Python3.6...