Ein allgemeines Entwicklungsbedürfnis besteht darin, dass wir einen Teil eines Elements ausblenden möchten, bis es benötigt wird. Einige gängige Frameworks wie Bootstrap und JQuery bieten Übergangseffekte. CSS Transition bietet uns jedoch viel Flexibilität hinsichtlich der Übergangshöhen. Daher müssen Sie keine zusätzlichen Frameworks in Ihr Projekt einbinden. Übergangshöhe Wir möchten erreichen, dass beim Klicken auf die Schaltfläche „Mehr anzeigen“ die Höhe des Elements vergrößert wird, um den gesamten Inhalt des Artikels anzuzeigen. Beim erneuten Klicken wird es dann wieder auf seine ursprüngliche Größe verkleinert. <Artikel-ID="Artikel"> <h3>Verwenden Sie CSS Transition, um Elemente durch Ändern der Höhe zu erweitern und zu reduzieren</h3> <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Illo perspiciatis tempora iure accusamus rerum. Fully porro unde, laboriosam soluta accusantium numquam quos adipisci commodi velit, expedita officia cum excepturi molestias.</p> <P> Lorem Ipsum Dolor Sit AMETRECTETUR ADIPISICIENS ELIT. Itate Sequi cum. Nisi Ullam Voluptatum Odio Non Eum Vero Vel Dolorum Deleniti Adipisci Culpa. <P> Lorem Ipsum Dolor Sit AMETRECTETUR ADIPISIENS ELIT. Itate Sequi cum. Nisi Ullam Voluptatum Odio Non Eum Vero Vel Dolorum Deleniti Adipisci Culpa. <P> Lorem Ipsum Dolor Sit AMETRECTETUR ADIPISIENS ELIT. Itate Sequi cum. Nisi Ullam Voluptatum Odio Non Eum Vero Vel Dolorum Deleniti Adipisci Culpa. </Artikel> <button id="seeMoreBtn">Mehr anzeigen</button> Die CSS-Stile sind wie folgt: Artikel { maximale Breite: 800px; Höhe: 300px; Überlauf-y: versteckt; } /* Diese Klasse hinzufügen, wenn auf die Schaltfläche geklickt wird */ artikel.erweitert { Höhe: 628px; } Taste { Polsterung: .6rem; } Das JavaScript lautet wie folgt: const seeMore = document.getElementById('seeMoreBtn') const Artikel = document.getElementById('Artikel') seeMore.addEventListener('click', () => { Artikel.classList.toggle('erweitert') const erweitert = Artikel.classList.contains('erweitert') if (erweitert) { seeMore.innerHTML = 'Inhalt ausblenden' } anders { seeMore.innerHTML = 'Mehr anzeigen' } }) Fügen Sie dem Artikel CSS-Übergangseigenschaften hinzu, damit der Inhalt beim Klicken auf die Schaltfläche reibungslos nach oben und unten gleiten kann. Artikel { maximale Breite: 800px; Höhe: 300px; Überlauf-y: versteckt; Übergang: Höhe 0,4 s linear; } Wenden Sie es jetzt auf Ihren Artikel an. Sie werden sehen, dass er reibungslos auf und ab gleiten kann. Das ist einfach und praktisch, aber diese Methode hat Einschränkungen. Werfen wir unten einen Blick darauf. Limit Diese Einschränkung besteht darin, ob die Höhe bekannt ist. Im obigen Beispiel kennen wir die Höhe des Artikels eindeutig und es funktioniert sehr gut, aber wenn wir mit dynamischen Inhalten arbeiten, kennen wir die Höhe des Elements nicht und seine Höhe kann sich auch mit der Bildschirmgröße oder auf andere Weise ändern. Lösung Die Lösung besteht darin, die Eigenschaft „max-height“ anstelle der Eigenschaft „height“ zu konvertieren. Zuerst müssen wir die maximale Höhe schätzen, die unser Element erreichen kann. Wenn das Element dann erweitert wird, legen wir die maximale Höhe des Elements höher fest als unsere Schätzung. Artikel { maximale Breite: 800px; maximale Höhe: 300px; Überlauf-y: versteckt; /* Erhöhen Sie die Übergangszeit zur Anpassung an die Höhe */ Übergang: max. Höhe 0,7 s linear; } Artikel.erweitert { maximale Höhe: 1500px; } Auf diese Weise funktioniert die Animation und wir erzielen dennoch den gewünschten Effekt. Je nach gewünschtem Effekt muss die Übergangszeit möglicherweise angepasst werden. Dies ist das Ende dieses Artikels zum Erweitern und Reduzieren von Elementen durch Ändern der Höhe des CSS-Übergangs. Weitere Informationen zum Erweitern und Reduzieren von Elementen mit CSS-Höhe finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! |
>>: Tiefgreifendes Verständnis der angegebenen IE-Browser-Rendering-Methode
Öffentlicher Name der Seite: #wrapper - - Der äuß...
Inhaltsverzeichnis 1. Einleitung 2. Der Unterschi...
Kurz zusammengefasst: Browserkompatibilitätsprobl...
Verwenden Sie Textausrichtung, Rand: 0 automatisc...
Wie lädt man das JAR-Paket in ein privates Lager ...
Nehmen wir ein Beispiel: Der Code ist sehr einfach...
MySQL-Basisdatentypen Übersicht über gängige MySQ...
So lösen Sie das Timeout-Problem, wenn Pip in Lin...
Installieren Filebeat hat Logstash-Forwarder voll...
Phänomen: Nach MySQL Version 5.7 ist der Standard...
Mein erstes Serverprogramm Ich lerne gerade, Onli...
brauchen Vor Kurzem mussten wir die Node-Onlinedi...
Szenario So rendern Sie Listen mit bis zu 10.000 ...
Einführung Es ist nicht nötig, Redis im Detail vo...
Beim Erstellen von HTML-Webseiten mit Dreamweaver...