Faltdisplay mit mehrzeiligem Textbaustein
Erstens der Code <Vorlage> <div Klasse="text-expand" ref="textExpand"> <div v-if="!(showPopover && showPopoverJudge)"> <span class="text-expand-content" :style="expandStyle"> {{ (Text === null || Text === undefiniert || Text === '') ? '--' : Text }} </span> <div Klasse="Expander"> <span v-if="showBtn && showBtnJudge" > <span v-if="!Vollständige Anzeige" Klasse = "Aktion, Aktion-erweitern" @click.stop="showFullFn(true)" > Erweitern<i v-if="showBtnIcon" class="iconfont iconxiajiantou" /> </span> <span v-sonst Klasse = "Aktion Aktionspaket" @click.stop="showFullFn(false)" > Ausblenden <i v-if="showBtnIcon" class="iconfont iconshangjiantou" /> </span> </span> </div> </div> <el-popover v-sonst :Platzierung="Popover-Platz" Auslöser="hover"> <div Klasse="Popover-Inhalt"> {{ text }} </div> <span class="text-expand-content" :style="expandStyle" slot="reference">{{ text }}</span> </el-popover> </div> </Vorlage> <Skript> Standard exportieren { Name: "TextExpand", Requisiten: { text: { // Textinhaltstyp: String, Standard: () => ' }, expand: { // Falten und die Anzahl der Zeilen anzeigen Typ: Zahl, Standard: () => 3 }, showBtn: { // Erweitern, Reduzieren Schaltflächentyp: Boolean, Standard: true }, showBtnIcon: { // Symbol erweitern, reduzieren Typ: Boolean, Standard: true }, showPopover: { // Popover zeigt den gesamten Text an Typ: Boolean, Standard: false }, popoverPlace: { // Popover-Position Typ: String, Standard: „unten“ } }, Daten () { zurückkehren { showFull: false, // Ob der vollständige Text angezeigt werden soll expandStyle: '', showBtnJudge: false, //Beurteilen, ob die Schaltfläche gefaltet und angezeigt werden soll. showPopoverJudge: false //Beurteilen, ob das Popover gefaltet und angezeigt werden soll. } }, betrachten: Text: Funktion (Wert) { dies.richterExpand() } }, montiert () { dies.richterExpand() }, Methoden: { showFullFn (Wert) { this.expandStyle = Wert? '': `Anzeige: -webkit-box; Wortumbruch: alles umbrechen; -webkit-Zeilenklemme: ${this.expand}; -webkit-box-orient: vertikal; Textüberlauf: Auslassungspunkte; Überlauf: ausgeblendet;` this.showFull = Wert }, judgeExpand () { //Beurteilen, ob dies reduziert werden soll.$nextTick(() => { const { expand } = dies; const textExpandStyle = window.getComputedStyle(this.$refs.textExpand) const textExpandHeight = parseFloat(textExpandStyle.height) //Gesamthöhe ermitteln const textExpandLineHeight = parseFloat(textExpandStyle.lineHeight) //Zeilenhöhe ermitteln // Zeilenhöhe berechnen const rects = Math.ceil(textExpandHeight / textExpandLineHeight) if (rects <= expand) { // Kein Ausklappen und Anzeigen nötig.showBtnJudge = false this.showPopoverJudge = falsch } anders { this.showBtnJudge = wahr this.showPopoverJudge = true this.expandStyle = `Anzeige: -webkit-box;Worttrennung: alles umbrechen;-webkit-Zeilenklemme: ${this.expand};-webkit-box-orient: vertikal;Textüberlauf: Auslassungspunkte;Überlauf: ausgeblendet;` } }) } } } </Skript> <style lang="less" scoped> .text-expand{ &-Inhalt{ Wörtertrennung: alles trennen; Leerzeichen: vor dem Umbruch; } .expander { Textausrichtung: links; Rand oben: 6px; .Aktion { Anzeige: Inline-Block; Schriftgröße: 14px; Farbe: #0281F0; Cursor: Zeiger; ich { Anzeige: inline; Schriftgröße: 12px; } } .Aktion.Aktionspaket { Rand links: 0; } } } .popover-Inhalt{ maximale Breite: 40vw; max. Höhe: 30vh; Überlauf: versteckt; Wörtertrennung: alles trennen; Überlauf-y: automatisch; } </Stil> Verwendung
Dies ist das Ende dieses Artikels über die mehrzeilige Textkomponente von Vue Folding Display. Weitere verwandte Inhalte zu mehrzeiligen Textkomponenten von Vue Folding Display 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:
|
<<: Allgemeine Struktur-Tags in XHTML
>>: Analyse des Implementierungsprozesses der Docker-Intranet-Penetration-FRP-Bereitstellung
Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...
Was tun, wenn Sie Windows Server 2008R2 vergessen...
Bisher wurden die von uns verwendeten Images alle...
Laden Sie ausländische Bilder mit Alibaba Cloud I...
1. Fügen Sie eine Festplatte hinzu 2. Überprüfen ...
Es gibt zwei Tabellen, und die Datensätze in Tabe...
In diesem Artikelbeispiel wird der spezifische Ja...
So installieren Sie GRUB für Linux Server Sie kön...
Im vorherigen Artikel haben wir drei gängige Meth...
Problembeschreibung (was ist Keep-Alive) Keep-Ali...
Mit der GROUP BY-Syntax können die Abfrageergebni...
Die Unterschiede zwischen „execute“, „executeUpda...
1. Einleitung In diesem Artikel wird hauptsächlic...
Vorwort: Der Installationsvorgang wird nicht im D...
<tr> <th width="12%">AAAAA&l...