Ich aktualisiere mein Gedächtnis beim Einstellen der Position und komme so spät dazu, dass ich nicht weiß, ob es jemand anderes sehen wird, aber -
Ich mag es nicht, die Position mit zu setzen css()
, obwohl es oft in Ordnung ist. Ich denke, die beste position()
Wahl ist, den von xdazz angegebenen Setter von jQuery UI zu verwenden . Wenn die jQuery-Benutzeroberfläche jedoch aus irgendeinem Grund keine Option ist (jQuery jedoch), bevorzuge ich Folgendes:
const leftOffset = 200;
const topOffset = 200;
let $div = $("#mydiv");
let baseOffset = $div.offsetParent().offset();
$div.offset({
left: baseOffset.left + leftOffset,
top: baseOffset.top + topOffset
});
Dies hat den Vorteil $div
, dass das übergeordnete Element nicht willkürlich auf die relative Positionierung eingestellt wird (was wäre $div
, wenn das übergeordnete Element selbst absolut in etwas anderem positioniert wäre?). Ich denke , der einzige große Rand Fall ist , wenn $div
nicht jeder hat offsetParent
, nicht sicher , ob es zurückkehren würde document
, null
oder etwas ganz anderes.
offsetParent
ist seit jQuery 1.2.6 verfügbar, irgendwann im Jahr 2008, daher funktioniert diese Technik jetzt und wenn die ursprüngliche Frage gestellt wurde.
$("#mydiv").css({top: '200px', left: '200px', position:'absolute'});
<- gut$("#mydiv").css({top: '200', left: '200', position:'absolute'});
<- schlecht. Wenn Positionswerte Zeichenfolgen sind , müssen Sie anscheinend die Einheiten einschließen, da dies sonst keine Auswirkungen hat.