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

Vue implementiert Chat-Schnittstelle

In diesem Artikelbeispiel wird der spezifische Co...

Windows 2019 Aktivierungs-Tutorial (Office2019)

Vor ein paar Tagen habe ich erfahren, dass die of...

Was ist ein MySQL-Index? Fragen Sie, wenn Sie es nicht verstehen

Inhaltsverzeichnis Überblick Vom Binärbaum zum B+...

MySQL-Komplettabsturz: Detaillierte Erklärung der Abfragefilterbedingungen

Überblick In tatsächlichen Geschäftsszenarioanwen...

So zeigen Sie in CocosCreator eine Textur an der Wischposition an

Inhaltsverzeichnis 1. Projektanforderungen 2. Dok...

Prioritätsanalyse von und/oder Abfragen in MySQL

Dies ist ein Problem, das leicht übersehen wird. ...

Lösung für großen Zeilenabstand (5 Pixel mehr im IE)

Code kopieren Der Code lautet wie folgt: li {Brei...

Versionsnummern in CSS- und JS-Links in HTML (Cache aktualisieren)

Hintergrund Suchen Sie in der Suchmaschine nach d...