ホームページ ウェブフロントエンド CSSチュートリアル 外側のコンテナのサイズが変更されたときに、スクロール可能なチャット Div を一番下に固定したままにする方法は?

外側のコンテナのサイズが変更されたときに、スクロール可能なチャット Div を一番下に固定したままにする方法は?

Dec 01, 2024 am 09:58 AM

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

外側の div のサイズが変わったときにスクロール可能な div を一番下に固定します

問題:

チャット アプリケーション インターフェイスでは、メッセージを含むスクロール可能な div は、たとえ外側の div のサイズが変わります。たとえば、ユーザーがテキスト入力領域のサイズを調整するとき、メッセージ div は下部に残る必要があります。

解決策:

1. CSS アプローチ:

フレックス方向: 列反転を使用します。外側の div の場合。これにより、フレックス コンテナ内の要素の順序が逆になり、メッセージ div が効果的に一番下に配置されます。

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

.message-div {
  flex: 1;
  overflow-y: scroll;
}
ログイン後にコピー

2. JavaScript アプローチ:

CSS ソリューションが特定のブラウザーと互換性がない場合は、JavaScript を使用してメッセージ div のサイズ変更と位置変更を処理できます:

// 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
ログイン後にコピー

追加注:

JavaScript ソリューションはより柔軟で、ブラウザーの互換性をより適切に処理しますが、次のことが必要です。イベントを追跡し、メッセージ div の高さを手動で更新します。これにより、パフォーマンスのオーバーヘッドが発生し、特定のシナリオでは CSS アプローチよりも効率が低下する可能性があります。

以上が外側のコンテナのサイズが変更されたときに、スクロール可能なチャット Div を一番下に固定したままにする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WordPressブロックと要素にボックスシャドウを追加します WordPressブロックと要素にボックスシャドウを追加します Mar 09, 2025 pm 12:53 PM

WordPressブロックと要素にボックスシャドウを追加します

Smart Forms Frameworkを使用してJavaScript連絡フォームを作成する Smart Forms Frameworkを使用してJavaScript連絡フォームを作成する Mar 07, 2025 am 11:33 AM

Smart Forms Frameworkを使用してJavaScript連絡フォームを作成する

満足している属性を持つインラインテキストエディターを作成します 満足している属性を持つインラインテキストエディターを作成します Mar 02, 2025 am 09:03 AM

満足している属性を持つインラインテキストエディターを作成します

GraphQLキャッシングの使用 GraphQLキャッシングの使用 Mar 19, 2025 am 09:36 AM

GraphQLキャッシングの使用

5つの最高のPHPフォームビルダー(および3つの無料スクリプト)を比較する 5つの最高のPHPフォームビルダー(および3つの無料スクリプト)を比較する Mar 04, 2025 am 10:22 AM

5つの最高のPHPフォームビルダー(および3つの無料スクリプト)を比較する

最初のカスタムSvelteトランジションを作成します 最初のカスタムSvelteトランジションを作成します Mar 15, 2025 am 11:08 AM

最初のカスタムSvelteトランジションを作成します

スクリーンリーダーの分解:アクセス可能なフォームとベストプラクティス スクリーンリーダーの分解:アクセス可能なフォームとベストプラクティス Mar 08, 2025 am 09:45 AM

スクリーンリーダーの分解:アクセス可能なフォームとベストプラクティス

node.jsとexpressのMulterを使用してファイルアップロードします node.jsとexpressのMulterを使用してファイルアップロードします Mar 02, 2025 am 09:15 AM

node.jsとexpressのMulterを使用してファイルアップロードします

See all articles