Menyegarkan ingatan saya pada pengaturan posisi, saya datang ke ini sangat terlambat saya tidak tahu apakah ada orang lain yang akan melihatnya, tapi -
Saya tidak suka mengatur posisi menggunakan css()
, meskipun sering baik-baik saja. Saya pikir yang terbaik adalah menggunakan position()
setter jQuery UI seperti dicatat oleh xdazz. Namun jika jQuery UI, karena alasan tertentu, bukan pilihan (belum jQuery), saya lebih suka ini:
const leftOffset = 200;
const topOffset = 200;
let $div = $("#mydiv");
let baseOffset = $div.offsetParent().offset();
$div.offset({
left: baseOffset.left + leftOffset,
top: baseOffset.top + topOffset
});
Ini memiliki keuntungan dari tidak menetapkan $div
orangtua secara sewenang-wenang ke posisi relatif (bagaimana jika $div
orangtua itu sendiri, benar-benar diposisikan di dalam sesuatu yang lain?). Saya pikir satu-satunya kasus tepi utama adalah jika $div
tidak memiliki offsetParent
, tidak yakin apakah itu akan kembali document
, null
atau sesuatu yang lain sama sekali.
offsetParent
telah tersedia sejak jQuery 1.2.6, sekitar tahun 2008, jadi teknik ini berfungsi sekarang dan ketika pertanyaan awal diajukan.
$("#mydiv").css({top: '200px', left: '200px', position:'absolute'});
<- bagus$("#mydiv").css({top: '200', left: '200', position:'absolute'});
<- buruk. Rupanya, jika nilai posisi adalah string , Anda harus memasukkan unit, atau itu tidak akan berpengaruh.