Jawaban:
.offset()
akan mengembalikan posisi ofset elemen sebagai objek sederhana, misalnya:
var position = $(element).offset(); // position = { left: 42, top: 567 }
Anda dapat menggunakan nilai pengembalian ini untuk memposisikan elemen lain di tempat yang sama:
$(anotherElement).css(position)
offset()
tidak mengembalikan koordinat atas yang tepat. Ini mengembalikan sekitar 300 piksel lebih dari koordinat atas elemen dalam dokumen. Mengapa??
Catatan yang $(element).offset()
memberi tahu Anda posisi elemen relatif terhadap dokumen . Ini berfungsi baik di sebagian besar keadaan, tetapi jika position:fixed
Anda bisa mendapatkan hasil yang tidak terduga.
Jika dokumen Anda lebih panjang dari viewport dan Anda telah menggulir secara vertikal ke bagian bawah dokumen, maka nilai position:fixed
elemen Anda akan lebih besar dari nilai yang diharapkan dengan jumlah yang telah Anda gulir.offset()
Jika Anda mencari nilai relatif ke viewport (jendela), daripada dokumen pada posisi: elemen tetap, Anda dapat mengurangi nilai dokumen dari scrollTop()
nilai elemen tetap offset().top
. Contoh:$("#el").offset().top - $(document).scrollTop()
Jika position:fixed
induk offset elemen adalah dokumen , Anda ingin membacanya parseInt($.css('top'))
.
$(document).scrollTop()