


Bagaimana untuk Menyimpan Div Sembang Boleh Tatal di Bahagian Bawah Apabila Medan Input Berubah Saiz?
Div Boleh Tatal Melekat ke Bawah Apabila Div Luar Berubah Saiz
Gambaran Keseluruhan
Dalam aplikasi sembang, adalah perkara biasa untuk mempunyai bekas mesej boleh tatal yang menggunakan kebanyakan skrin. Walau bagaimanapun, apabila medan input meningkat ketinggian secara dinamik, kedudukan skrol pengguna boleh terganggu.
Masalahnya
Apabila medan input berkembang, ia meningkatkan ketinggian div luar secara berkesan, yang menolak bekas mesej ke bawah. Ini menyebabkan pengguna tidak dapat melihat mesej terbaharu.
Penyelesaian Berasaskan React
Satu pendekatan ialah menggunakan kaedah kitaran hayat componentDidUpdate React untuk mengira ketinggian medan input dan memberitahu bekas mesej jika ia berubah . Walau bagaimanapun, ini boleh membawa kepada isu prestasi dan penghantaran mesej yang berlebihan.
Penyelesaian CSS menggunakan Flexbox
Penyelesaian yang lebih cekap melibatkan penggunaan 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; }
- flex-direction: lajur-terbalik; meletakkan mesej di bahagian bawah bekas.
- Ini memastikan mesej kekal dalam paparan walaupun apabila medan input berkembang.
Pertimbangan
- Pepijat IE/Edge/Firefox: Penyemak imbas ini mempamerkan pepijat di mana bar skrol boleh hilang apabila menggunakan flex-direction: column-reverse;.
- Penyelesaian: Untuk menangani perkara ini, tambahkan fungsi berikut:
function updateScroll(el) { el.scrollTop = el.scrollHeight; } function scrollAtBottom(el) { return (el.scrollTop + 5 >= (el.scrollHeight - el.offsetHeight)); }
- Semak sama ada bekas berada di bahagian bawah dan laraskan bar skrol apabila medan input diubah saiz dalam penyemak imbas ini.
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Div Sembang Boleh Tatal di Bahagian Bawah Apabila Medan Input Berubah Saiz?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Mari kita cuba menyusun istilah di sini: "Penyedia Borang Statik." Anda membawa html anda

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Pada minggu ini, berita platform, Chrome memperkenalkan atribut baru untuk memuatkan, spesifikasi aksesibiliti untuk pemaju web, dan gerakan BBC

Ini saya melihat elemen HTML untuk kali pertama. Saya telah menyedarinya untuk seketika, tetapi Haven ' t mengambilnya untuk putaran lagi. Ia mempunyai cukup keren dan

Beli atau Membina adalah perdebatan klasik dalam teknologi. Membina barang sendiri mungkin berasa lebih murah kerana tidak ada item baris pada bil kad kredit anda, tetapi

Untuk sementara waktu, iTunes adalah anjing besar dalam podcasting, jadi jika anda mengaitkan "Langgan Podcast" untuk suka:

Ketua dokumen mungkin bukan bahagian paling glamor dari laman web, tetapi apa yang masuk ke dalamnya boleh dikatakan sama pentingnya dengan kejayaan laman web anda sebagai

Terdapat banyak platform analisis untuk membantu anda mengesan data pelawat dan penggunaan di laman web anda. Mungkin paling penting Google Analytics, yang digunakan secara meluas
