Jawaban:
Apakah mereka sama tergantung pada konteksnya.
position
mengembalikan {left: x, top: y}
objek relatif ke induk offset
offset
mengembalikan {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}
.
sub
posisi absolut ke 0: 0, maka itu akan berada di sudut kiri atas dari induk offset.
.position
diperbarui 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