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:fixedAnda 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:fixedelemen 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:fixedinduk offset elemen adalah dokumen , Anda ingin membacanya parseInt($.css('top')).
$(document).scrollTop()