Jawaban:
Apakah mereka sama tergantung pada konteksnya.
positionmengembalikan {left: x, top: y}objek relatif ke induk offset
offsetmengembalikan {left: x, top: y}objek relatif ke dokumen .
Jelas, jika dokumen tersebut adalah induk offset, yang sering terjadi, ini akan identik. The orangtua mengimbangi adalah "unsur yang mengandung diposisikan terdekat."
Misalnya, dengan dokumen ini:
<div style="position: absolute; top: 200; left: 200;">
<div id="sub"></div>
</div>
Maka itu $('#sub').offset() akan terjadi {left: 200, top: 200}, tetapi itu .position()akan terjadi {left: 0, top: 0}.
subposisi absolut ke 0: 0, maka itu akan berada di sudut kiri atas dari induk offset.
.positiondiperbarui pada 1.12.0 => github.com/jquery/jquery/issues/1708
Metode .offset () memungkinkan kita untuk mengambil posisi elemen saat ini relatif terhadap dokumen . Bandingkan ini dengan .position () , yang mengambil posisi saat ini relatif terhadap induk offset . Saat memposisikan elemen baru di atas yang sudah ada untuk manipulasi global (khususnya, untuk menerapkan drag-and-drop), .offset () adalah yang lebih berguna.
Sumber: http://api.jquery.com/offset/
Kedua fungsi mengembalikan objek polos dengan dua properti: lebar & tinggi.
offset () mengacu pada posisi relatif terhadap dokumen.
position () mengacu pada posisi relatif terhadap elemen induknya
TETAPI ketika posisi css objek "absolut" kedua fungsi akan mengembalikan lebar = 0 & tinggi = 0