JavaScript zum Erzielen eines Texterweiterungs- und -reduzierungseffekts

JavaScript zum Erzielen eines Texterweiterungs- und -reduzierungseffekts

Die Implementierung des Erweiterns und Reduzierens von Listentext dient Ihnen als Referenz. Die spezifischen Inhalte sind wie folgt

brauchen:

1. Wenn der Text den Zielwert überschreitet, wird der Zielwert abgefangen, der Rest ausgeblendet und gleichzeitig das Wort „Erweitern“ und der Dropdown-Pfeil angezeigt.
2. Klicken Sie auf "Erweitern", um den gesamten Text anzuzeigen, und wechseln Sie zu "Reduzieren" und dem Pull-Up-Pfeil
3. Wenn der Text selbst den Zielwert nicht überschreitet, zeigen Sie einfach den gesamten Text an

Ich habe darüber nachgedacht, CSS zu verwenden, um die Anzahl der auszublendenden Zeilen festzulegen oder die Höhe des auszublendenden Li-Tags festzulegen, aber keines davon kann die dritte Anforderung oben erfüllen. Daher dachte ich an die folgende Methode, die verwendet werden kann

Ideen:

1. Durchlaufen Sie zunächst die Elemente, die erweitert und reduziert werden müssen, blenden Sie sie aus, wenn sie den Zielwert überschreiten, und speichern Sie dann den Inhalt aller Tags (der später beim Anzeigen aller verwendet wird).
2. Wenn Sie zum Erweitern oder Reduzieren klicken, gleichen Sie den gespeicherten Wert mit dem aktuellen Inhalt ab, führen Sie dann die entsprechende Verarbeitung durch und zeigen Sie ihn an.

HTML

<ul Klasse="outList">
        <li>
            <div>Nr. 5-14</div>
            <ul Klasse="innereListe">
                <li class="wordsContent">1111111111111111111111</li>
                <li Klasse="WörterInhalt">222222222222222222222222</li>
                <li class="wordsContent">33333333333333333333333</li>
            </ul>
        </li>
        <li>
            <div>Nr. 5-15</div>
            <ul Klasse="innereListe">
                <li class="wordsContent">4444</li>
                <li class="wordsContent">5555555555555555555555555555</li>
                <li class="wordsContent">666666666666666666666666</li>
            </ul>
        </li>
</ul>

CSS

ul,li {
   Listenstil: keiner;
 }
.innerList>li {
     Rand unten: 0,2rem;
     Rahmen unten: 0,01rem durchgehend grün;
     Box-Größe: Rahmenbox;
     Polsterung: 0,2rem 5 % 0,7rem 3 %;
     Position: relativ;
     Rand unten: 0,3rem;
 }
 .offen {
     Schriftgröße: 0,22rem;
     Farbe: #12309E;
     Position: absolut;
     rechts: 0,2rem;
     unten: 0,1rem;
     Schriftstärke: fett;
 }
 .schließen {
     Schriftgröße: 0,22rem;
     Farbe: #12309E;
     Position: absolut;
     rechts: 0,2rem;
     unten: 0,1rem;
     Schriftstärke: fett;
 }

JS

//Nachrichten erweitern und reduzieren var objList = $(".wordsContent"); //Die li-Tag-Elemente, die erweitert und reduziert werden müssen var maxNum = 5; //Die Länge des Zielwerts var arr = []; //Alle Texte, die erweitert und reduziert werden müssen objList.delegate(".open", "click", function () {
    öffnenSchließen(true, dies)
})
objList.delegate(".schließen", "klicken", Funktion () {
    öffnenSchließen(false, dies)
})
// Paket initialisieren. Der Zweck der Initialisierung ist 1: den ursprünglichen Inhalt des Li-Tags zu speichern; 2: den Text auszublenden, der den Zielwert überschreitet function init(objList, maxNum) {
    objList.each(Funktion (Index, Element) {
        arr.push($(item_).text())
        wenn ($(item).text().length > maxNum) {
            $(item).html($(item).text().substr(0, maxNum) + "<span class='open'>Erweitern<img src='./image/down^.png'/></span>")
        }
    })
}
init(Objektliste, maxAnzahl)

//Kapselungsfunktion zum Erweitern und Reduzieren openClose(boo, clickObj) {
    var final = '';
    arr.map(Funktion (Element, Index) {
        wenn (item.match($(clickObj).parents(".wordsContent").text().substring(0, $(clickObj).parents(".wordsContent").text().length - 2))) {
            final = Artikel
        }
    })
    wenn (buuuh) {
        $(clickObj).parents(".wordsContent").html(final + "<span class='close'>Zurück<img src='./image/up^.png'/></span>")
    } anders {
        $(clickObj).parents(".wordsContent").html(final.substr(0, maxNum) + "<span class='open'>Erweitern<img src='./image/down^.png'/></span>")
    }
}

Wirkung

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • vue.js implementiert den Animationseffekt „Klicken zum Erweitern und Reduzieren“
  • JavaScript-Implementierung von IE6-kompatiblen Collapse- und Expansion-Effekten
  • Natives JS imitiert den QQ-Leseeffekt durch Klicken zum Erweitern und Reduzieren
  • Native js realisiert die Funktion zum Erweitern/Reduzieren des Volltexts der Nachrichtenliste
  • So steuern Sie das Reduzieren und Erweitern von Webseitenebenen mit JavaScript
  • Ein gepackter JS-Code ----- Beispiel für Expand- und Collapse-Effekt
  • Ich habe einen JS-Effekt geschrieben, der sich erweitern und reduzieren lässt
  • Die Wirkung einer Javascript-Anzeige, die sich langsam ausdehnt und dann langsam zusammenfällt

<<:  Ursachen und Lösungen für MySQL-Deadlocks

>>:  Tutorial zur Installation von MySQL mit Docker und zur Implementierung einer Remote-Verbindung

Artikel empfehlen

Eine kurze Diskussion zu this.$store.state.xx.xx in Vue

Inhaltsverzeichnis Sehen Sie sich dies an.$store....

Tutorial zur Installation von mysql5.7.17 über yum auf redhat7

Die Linux-Betriebssysteme der RHEL/CentOS-Reihe v...

Detaillierte Erklärung langer Transaktionsbeispiele in MySQL

Vorwort: Die Artikelserie „Erste Schritte mit MyS...

Beispiele für optimistisches und pessimistisches Sperren in MySQL

Die Aufgabe der Parallelitätskontrolle in einem D...

Lernen Sie die schwarze Technologie der Union-All-Verwendung in MySQL 5.7 in 5 Minuten

Leistung von „Union All“ in MySQL 5.6 Teil 1: MyS...

Implementierung der Knotenverbindung zur MySQL-Abfragetransaktionsverarbeitung

Inhaltsverzeichnis Geben Sie das Thema MySQL ein:...

MySQL-Optimierung: Cache-Optimierung

Ich freue mich, dass einige Blogger meinen Artike...

MySQL 8.0.12 – Schnellinstallations-Tutorial

Die Installation von MySQL 8.0.12 dauerte zwei Ta...

JavaScript zum Erzielen eines Mauszieheffekts

In diesem Artikel wird der spezifische JavaScript...

So implementieren Sie E-Mail-Benachrichtigungen in Zabbix

Umgesetzt gemäß Online-Tutorial. zabbix3.4, mithi...

Lassen Sie uns über Parameter in MySQL sprechen

Vorwort: In einigen früheren Artikeln haben wir h...

Detaillierte Schritte zur Neuinstallation von VMware Tools (grafisches Tutorial)

VMware Tools ist ein Tool, das mit virtuellen VMw...