


Scrollbares Div bleibt am unteren Rand hängen, wenn das äußere Div seine Größe ändert
Übersicht
In Chat-Anwendungen ist es üblich, dass ein scrollbarer Nachrichtencontainer Platz einnimmt den größten Teil des Bildschirms. Wenn die Höhe des Eingabefelds jedoch dynamisch zunimmt, kann die Scrollposition des Benutzers gestört werden.
Das Problem
Wenn das Eingabefeld wächst, erhöht es effektiv die Höhe des äußeren Div, wodurch die Höhe des Eingabefelds erhöht wird drückt den Nachrichtencontainer nach unten. Dies führt dazu, dass der Benutzer die letzten Nachrichten aus den Augen verliert.
React-basierte Lösung
Ein Ansatz besteht darin, die Lebenszyklusmethode „componentDidUpdate“ von React zu verwenden, um die Höhe des Eingabefelds zu berechnen und den Nachrichtencontainer zu benachrichtigen, wenn sie sich ändert . Dies kann jedoch zu Leistungsproblemen und übermäßigem Nachrichtenaustausch führen.
CSS-Lösung mit Flexbox
Eine effizientere Lösung ist die Verwendung von CSS-Flexbox:
.chat-window { display: flex; flex-direction: column; height: 100%; } .chat-messages { flex: 1; height: 100%; overflow: auto; display: flex; flex-direction: column-reverse; } .chat-input { border-top: 1px solid #999; padding: 20px 5px; }
- Flexrichtung: Spaltenumkehr; Platziert die Nachrichten am unteren Rand des Containers.
- Dadurch wird sichergestellt, dass die Nachrichten auch dann sichtbar bleiben, wenn das Eingabefeld wächst.
Überlegungen
- IE/Edge/Firefox-Fehler: Diese Browser weisen einen Fehler auf, bei dem die Bildlaufleiste verschwinden kann, wenn Flex-Direction verwendet wird: Column-Reverse;.
- Problemumgehung: Um dieses Problem zu beheben, fügen Sie die folgenden Funktionen hinzu:
function updateScroll(el) { el.scrollTop = el.scrollHeight; } function scrollAtBottom(el) { return (el.scrollTop + 5 >= (el.scrollHeight - el.offsetHeight)); }
- Überprüfen Sie, ob sich der Container am befindet Unten und passen Sie die Bildlaufleiste an, wenn die Größe des Eingabefelds in diesen Browsern geändert wird.
Das obige ist der detaillierte Inhalt vonWie behalte ich ein scrollbares Chat-Div am unteren Rand bei, wenn die Größe des Eingabefelds geändert wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Haben Sie jemals ein Formular gehabt, das ein kurzes, willkürliches Stück Text akzeptieren musste? Wie ein Name oder was auch immer. Das ist genau das, wofür es ist. Es gibt viele

Ich bin so aufgeregt, nach Zürich, der Schweiz, zur Frontkonferenz zu gehen (liebe diesen Namen und diese URL!). Ich war noch nie in der Schweiz, also bin ich aufgeregt

Eine meiner Lieblingsentwicklungen in der Softwareentwicklung war das Aufkommen von Serverless. Als Entwickler, der die Tendenz hat, sich in den Details festzuhalten

In diesem Beitrag werden wir eine E -Commerce -Store -Demo verwenden, die ich für Netlify erstellt und bereitgestellt habe, um zu zeigen, wie wir dynamische Routen für eingehende Daten erstellen können. Es ist fair

Lassen Sie sich sagen, Sie wollten ein Element auf einen unterhaltsamen visuellen Effekt verschieben.

Wir nutzen den Zustand, um Anwendungsdaten zu verfolgen. Zustände ändern sich, wenn Benutzer mit einer Anwendung interagieren. In diesem Fall müssen wir den Status aktualisieren

Es ist das erste, wonach Ihre Augen beim Wechseln der Registerkarten suchen.

Netlify hat ihre eigenen Dokumente für benutzerdefinierte Domains. Wenn Sie also nach technischen Dokumenten des Pferdes auf der Suche nach dem Mund -Mund -Dokument sind, sollte dies als Quelle von behandelt werden


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Dreamweaver Mac
Visuelle Webentwicklungstools

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools