Освіжаючи мою пам'ять про встановлення положення, я приходжу до цього так пізно, що не знаю, чи хтось ще побачить це, але -
Мені не подобається налаштування положення css()
, хоча часто це добре. Я думаю, що найкращим варіантом є використання position()
сеттера jQuery UI, як зазначає xdazz. Однак якщо інтерфейс jQuery чомусь не є варіантом (все ж jQuery є), я віддаю перевагу цьому:
const leftOffset = 200;
const topOffset = 200;
let $div = $("#mydiv");
let baseOffset = $div.offsetParent().offset();
$div.offset({
left: baseOffset.left + leftOffset,
top: baseOffset.top + topOffset
});
Це має перевагу в $div
тому, що батьків не довільно встановлювати на відносне позиціонування (що робити, якщо $div
сам батько був абсолютним в чомусь іншому?) Я думаю , що єдиний головний крайній випадок, якщо $div
не має якогось - або offsetParent
, не впевнений , що якщо він повернеться document
, null
або що - то зовсім інше.
offsetParent
доступний з jQuery 1.2.6, колись у 2008 році, тому ця методика працює і зараз, і коли було задано оригінальне питання.
$("#mydiv").css({top: '200px', left: '200px', position:'absolute'});
<- хороший$("#mydiv").css({top: '200', left: '200', position:'absolute'});
<- поганий. Мабуть, якщо значення позицій є рядками , ви повинні включити одиниці, інакше це не матиме ефекту.