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 $divnicht jeder hat offsetParent, nicht sicher , ob es zurückkehren würde document, nulloder 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.