Dalam dom javascript - apa perbedaan antara elemen offsetHeight dan clientHeight?
javascript
steve
sumber
sumber
Jawaban:
clientHeight :
offsetHeight :
Jadi,
offsetHeight
termasuk scrollbar dan border,clientHeight
tidak.sumber
clientSize
tersedia (setelah semua, itu viewport), tetapi perlu menghitungoffsetHeight
setelah merefleksikan seluruh dokumen?Jawaban dari Oded adalah teorinya. Tetapi teori dan kenyataan tidak selalu sama, setidaknya tidak untuk elemen <BODY> atau <HTML> yang mungkin penting untuk operasi pengguliran dalam javascript.
Microsoft memiliki gambar yang bagus di MSDN :
Jika Anda memiliki halaman HTML yang memperlihatkan bilah gulir vertikal, orang akan mengharapkan bahwa elemen <BODY> atau <HTML> memiliki geater ScrollHeight daripada OffsetHeight seperti yang ditunjukkan gambar ini. Ini berlaku untuk semua versi Internet Explorer yang lebih lama.
Tapi itu tidak benar untuk Internet Explorer 11 dan tidak untuk Firefox 36. Setidaknya di browser ini OffsetHeight hampir sama dengan ScrollHeight yang salah.
Dan meskipun OffsetHeight mungkin salah, ClientHeight selalu benar.
Coba kode berikut di berbagai browser dan Anda akan melihat:
Sementara Internet Explorer yang lebih lama tampil dengan benar:
Output dari Firefox dan Internet Explorer 11 adalah:
yang menunjukkan dengan jelas bahwa offsetHeight salah di sini. OffsetHeight dan ClientHeight harus berbeda hanya beberapa piksel atau sama.
Harap perhatikan bahwa ClientHeight dan OffsetHeight mungkin juga sangat berbeda untuk elemen yang tidak terlihat seperti misalnya <FORM> di mana OffsetHeight mungkin ukuran sebenarnya dari FORMULIR sementara ClientHeight mungkin nol.
sumber