Ayar konumuyla hafızamı tazeliyorum, bu kadar geç geliyorum, başkasının görüp görmeyeceğini bilmiyorum, ama -
Konum ayarlamaktan hoşlanmıyorum css()
, ancak çoğu zaman iyi. Ben en iyi bahis position()
xdazz tarafından belirtildiği gibi jQuery UI ayarlayıcı kullanmak olduğunu düşünüyorum . Ancak, jQuery kullanıcı arabirimi, bir nedenden ötürü bir seçenek değilse (henüz jQuery ise), bunu tercih ederim:
const leftOffset = 200;
const topOffset = 200;
let $div = $("#mydiv");
let baseOffset = $div.offsetParent().offset();
$div.offset({
left: baseOffset.left + leftOffset,
top: baseOffset.top + topOffset
});
Bunun avantajı, $div
ebeveyninin keyfi olarak göreli konumlandırmaya ayarlanmamasıdır (eğer $div
ebeveyninin kendisi başka bir şeyin içine mutlak konumlandırılmışsa?) Ben keşke büyük kenarı durumda olduğunu düşünüyorum $div
herhangi yoktur offsetParent
, değil emin dönecekti eğer document
, null
ya tamamen başka bir şey.
offsetParent
2008'de bazen jQuery 1.2.6'dan beri mevcuttur, bu nedenle bu teknik şimdi ve orijinal soru sorulduğunda çalışır.
$("#mydiv").css({top: '200px', left: '200px', position:'absolute'});
<- iyi$("#mydiv").css({top: '200', left: '200', position:'absolute'});
<- kötü. Görünüşe göre, konum değerleri dizeyse , birimleri dahil etmelisiniz, aksi takdirde bir etkisi olmaz.