Szenario: Ein Prüfdokument hat n Prüfdetails und ein Prüfdetail hat n Prüfelemente. Implementierungseffekt: Wenn die Maus auf das Zusammenfassungssymbol der Detailzeile bewegt wird, wird das Popup-Fenster der Inspektionsartikelkarte der aktuellen Zeile angezeigt und das Popup-Fenster wird geschlossen, wenn die Maus aus dem Popup-Fenster bewegt wird Details des Prüfdokuments Bewegen Sie die Maus über das Projektübersichtssymbol EffektrealisierungIn Daten deklarierte Variablen //Popup-Fenster umreißen outlineDialog: false, //Standardzusammenfassung der aktuellen Zeile standSummary: [], // Gliederung der Popup-Fensterpositionssteuerung outlineCard: { SeiteY: null, SeiteX: null, Anzeige: "keine" } 1. Popup-Code outlineDialog: Standardmäßig „false“, das Outline-Popup-Fenster zeigt das Logo an <!-- Projektübersicht --> <div class="summary-div" v-show="outlineDialog" ref="box-cardDiv" :style="outlineStyle" @mouseleave="verlassen"> <div class="summary-title">Projektzusammenfassung</div> <ul Klasse="Zusammenfassung-ul"> <li class="summary-li"><span>Standardname</span><span>Ist er erforderlich?</span><span>Wird er angezeigt?</span></li> <li v-for="(item, index) in standSummary" :key="index" class="summary-li"><span>{{item.inspectdetailName}}</span><span>{{item.isRequired ? 'Ja' : 'Nein'}}</span> <span>{{item.isDisplay ? 'Ja' : 'Nein'}}</span> </li> </ul> </div> 2. Code im Popup-Fensterstil <style lang="scss"> #box-cardDiv { Position: absolut; } .summary-div { Rand: durchgezogen 1px #eee; Hintergrundfarbe: #fff; Rahmenradius: 4px; Kastenschatten: 0 2px 12px 0 rgba(0, 0, 0, .1); Polsterung: 10px 10px 0 10px; Breite: 300px; Position: absolut; Schriftgröße: 13px; } .summary-ul { Listenstil: keiner; Polsterung links: 0; maximale Höhe: 350px; Überlauf-x: versteckt; Überlauf-y: automatisch; } .summary-li { Rand: 10px 10px 15px 10px; Breite: 250px; Textüberlauf: Auslassungspunkte; Überlauf: versteckt; /* Leerzeichen: nowrap; */ Anzeige: Flex; Spanne { Rand: automatisch; Breite: 55px; } } .summary-li:erstes-Kind span:nicht(:erstes-Kind) { Rand links: 40px; } .summary-li:nicht(:erstes-Kind) span:ntes-Kind(1) { Breite: 90px; } .summary-li:nicht(:erstes-Kind) span:ntes-Kind(2) { Breite: 50px; Rand links: 45px; } .summary-li:nicht(:erstes-Kind) span:ntes-Kind(3) { Rand links: 60px; } .Zusammenfassungstitel { Farbe: #cccccc; Rand links: 10px; } </Stil> 3. Spaltencode der Artikelübersicht der detaillierten Tabelle checkStandSunmmary: Das Ereignis, wenn die Maus zum Zusammenfassungssymbol bewegt wird <el-table-column label="Projektübersicht" align="center" width="500"> <template slot="header"> <span>Projektübersicht</span> <span class="vertical"></span> </Vorlage> <template slot-scope="Umfang"> <div Klasse="col-summmary-div"> <span class="col-summmary-format"><span>{{scope.row.firstListItem}}</span></span> <span> {{scope.row.equInspectplanItemList.length}} Elemente</span> <i class="el-icon-arrow-down" @mouseenter="checkStandSunmmary(scope.row)"></i> </div> </Vorlage> </el-Tabellenspalte> 4. OutlineStyle - Dynamische Stilsteuerung für Popup-Karten Wenn sich die Details unten auf der Seite befinden, wird die Karte zwar noch angezeigt, aber ein Teil davon wird verdeckt. Sie müssen die Position der Kartenöffnung dynamisch entsprechend der Position des Zusammenfassungssymbols berechnen. Wenn es unten ist, öffnen Sie die Karte nach oben. berechnet: { Umrissstil() { sei h = 45 * this.standSummary.length; let browser = document.body.clientHeight - 50; let pageY = this.outlineCard.pageY - 50; let pageX = this.outlineCard.pageX – 280; if (SeiteY + h > Browser) { returniere `links: ${ pageX }px; oben: ${ (pageY-h) }px; Position: absolut; Anzeige: ${ this.outlineCard.display }`; } anders { returniere `links: ${ pageX }px; oben: ${ (pageY-60) }px; Position: absolut; Anzeige: ${ this.outlineCard.display }`; } } }, 5. Ereignis verlassen, wenn die Maus die Popup-Karte verlässt Wenn die Maus aus der Karte herausbewegt wird, setzen Sie den /** * Mauszeiger verlassen Standardzusammenfassung */ verlassen() { this.outlineCard.display = "keine"; this.outlineDialog = falsch; }, 6. checkStandSunmmary-Ereignis, wenn die Maus zum Zusammenfassungssymbol bewegt wird Öffnen Sie die Popup-Karte und rufen Sie die Inspektionselemente der aktuellen Zeile ab. Rufen Sie die aktuelle Mausposition auf den X- und Y-Achsen des Browsers ab. Setzen Sie den Popup-Kartenstil dynamisch auf null (die Anzeige wird angezeigt, außer „none“, was bedeutet, dass sie nicht angezeigt wird). /** * Aktuelle Zeilenstandardzusammenfassung */ checkStandSunmmary(Zeile) { this.outlineDialog = wahr; this.standSummary = Zeile.equInspectplanItemList; this.outlineCard.pageY = Fenster.Ereignis.ClientY; diese.outlineCard.pageX = Fenster.Ereignis.ClientX; this.outlineCard.display = null; }, ZusammenfassenDies ist das Ende dieses Artikels über das Popup-Fenster mit der Zusammenfassung der Vue+Element-UI-Implementierung. Weitere relevante Inhalte zum Popup-Fenster der Vue+Element-UI finden Sie in den vorherigen Artikeln von 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:
|
<<: Das neueste grafische Tutorial zur Installation und Konfiguration von MySQL 5.7.23
>>: Detaillierte Erklärung der nmcli-Verwendung in CentOS8
Inhaltsverzeichnis Zyklus für für-in für-von währ...
Normale MySQL-Sortierung, benutzerdefinierte Sort...
Effektbild (die Rahmenfarbe ist zu hell, setzen S...
Inhaltsverzeichnis Vorwort zx-Bibliothek $`Befehl...
Inhaltsverzeichnis 1. Lernziele 1.1. Beherrschen ...
In diesem Artikel werden diese 4 Prinzipien im Hi...
Als ich kürzlich an einem Projekt arbeitete, wurd...
Wenn Sie in React den Status direkt mit this.stat...
Inhaltsverzeichnis Vorwort: 1. Standardwertbezoge...
jQuery realisiert den Effekt der Sitzplatzauswahl...
Inhaltsverzeichnis Vorne geschrieben Vorsichtsmaß...
<br />Im vorherigen Artikel habe ich die Sch...
Beispiele für die MySQL-Verschlüsselung und -Ents...
Das Installationstutorial für MySQL 5.7.19 Winx64...
Ich frage mich, ob Sie wie ich ein Programmierer ...