Heim >Web-Frontend >CSS-Tutorial >Wie bleibt eine scrollbare Chat-Div unten hängen, wenn die Größe des äußeren Containers geändert wird?

Wie bleibt eine scrollbare Chat-Div unten hängen, wenn die Größe des äußeren Containers geändert wird?

DDD
DDDOriginal
2024-12-01 09:58:09398Durchsuche

How to Keep a Scrollable Chat Div Stuck to the Bottom When the Outer Container Resizes?

Scrollbares Div, um am unteren Rand zu bleiben, wenn sich die Größe des äußeren Div ändert

Problem:

In einer Chat-Anwendungsoberfläche sollte ein scrollbares Div, das Nachrichten enthält, am unteren Rand des äußeren Div bleiben, auch wenn sich die Größe des äußeren Div ändert. Wenn der Benutzer beispielsweise die Größe des Texteingabebereichs anpasst, sollte das Nachrichten-Div unten bleiben.

Lösung:

1. CSS-Ansatz:

Flex-Richtung verwenden: Column-Reverse; für die äußere div. Dadurch wird die Reihenfolge der Elemente im Flex-Container umgekehrt, wodurch das Nachrichten-Div effektiv unten platziert wird.

.outer-div {
  display: flex;
  flex-direction: column-reverse;
}

.message-div {
  flex: 1;
  overflow-y: scroll;
}

2. JavaScript-Ansatz:

Wenn die CSS-Lösung mit bestimmten Browsern nicht kompatibel ist, können Sie JavaScript verwenden, um die Größenänderung und Neupositionierung des Nachrichten-Divs zu verwalten:

// Resize function to adjust message div height
function resizeMessageDiv() {
  const messageDiv = document.querySelector('.message-div');
  messageDiv.style.height = calcMessageDivHeight();
}

// Helper function to calculate the message div height
function calcMessageDivHeight() {
  const outerDiv = document.querySelector('.outer-div');
  return outerDiv.clientHeight - document.querySelector('.text-input').clientHeight;
}

// Event listener for text input changes
document.querySelector('.text-input').addEventListener('input', resizeMessageDiv);

window.addEventListener('load', resizeMessageDiv); // Initial resize on page load

Zusätzlich Hinweis:

Während die JavaScript-Lösung flexibler ist und die Browserkompatibilität besser handhabt, erfordert sie die Verfolgung von Ereignissen und eine manuelle Verfolgung Aktualisieren der Höhe des Nachrichten-Divs, was zu Leistungseinbußen führen kann und in bestimmten Szenarien weniger effizient als der CSS-Ansatz ist.

Das obige ist der detaillierte Inhalt vonWie bleibt eine scrollbare Chat-Div unten hängen, wenn die Größe des äußeren Containers geändert wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn