チャット アプリケーションでは、スクロール可能なメッセージ コンテナーが使用されるのが一般的です。画面の大部分。ただし、入力フィールドの高さが動的に増加すると、ユーザーのスクロール位置が乱れることがあります。
入力フィールドが増加すると、実質的に外側の div の高さが増加します。メッセージコンテナを押し下げます。これにより、ユーザーは最近のメッセージを見失います。
1 つのアプローチは、React のコンポーネントDidUpdate ライフサイクル メソッドを使用して入力フィールドの高さを計算し、変更された場合にメッセージ コンテナに通知することです。 。ただし、これにより、パフォーマンスの問題や過剰なメッセージ パッシングが発生する可能性があります。
より効率的なソリューションには、CSS フレックスボックスの使用が含まれます。
.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; }
function updateScroll(el) { el.scrollTop = el.scrollHeight; } function scrollAtBottom(el) { return (el.scrollTop + 5 >= (el.scrollHeight - el.offsetHeight)); }
以上が入力フィールドのサイズが変更されたときに、スクロール可能なチャット Div を下部に維持する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。