У меня есть div и хочу найти нижнюю позицию. Я могу найти верхнюю позицию Div как это, но как найти нижнюю позицию?
var top = $('#bottom').position().top;
return top;
У меня есть div и хочу найти нижнюю позицию. Я могу найти верхнюю позицию Div как это, но как найти нижнюю позицию?
var top = $('#bottom').position().top;
return top;
Добавьте внешний верх к вершине, и у вас есть нижняя часть относительно родительского элемента:
var $el = $('#bottom'); //record the elem so you don't crawl the DOM everytime
var bottom = $el.position().top + $el.outerHeight(true);
С абсолютно позиционируемыми элементами или при позиционировании относительно документа вам нужно будет вместо этого оценить смещение:
var bottom = $el.offset().top + $el.outerHeight(true);
Как указано trnelson, это не работает в течение 100% времени. Чтобы использовать этот метод для позиционированных элементов, вы также должны учитывать смещение. Для примера см. Следующий код.
var bottom = $el.position().top + $el.offset().top + $el.outerHeight(true);
EDIT: это решение также находится в исходном ответе.
Принятый ответ не совсем корректен. Вы не должны использовать функцию position(), поскольку она относительна к родительскому. Если вы занимаетесь глобальным позиционированием (в большинстве случаев?), Вы должны добавить только верхнюю часть смещения с внешним видом:
var actualBottom = $(selector).offset().top + $(selector).outerHeight(true);
Документы http://api.jquery.com/offset/
Ответы до сих пор будут работать. Если вы хотите использовать высоту без заполнения, границ и т.д.
Если вы хотите учитывать заполнение, границы и маржу, вы должны использовать .outerHeight
.
var bottom = $('#bottom').position().top + $('#bottom').outerHeight(true);
var bottom = $('#bottom').position().top + $('#bottom').height();
Нижняя часть top
+ outerHeight
, не height
, так как он не будет включать в себя margin или padding.
var $bot,
top,
bottom;
$bot = $('#bottom');
top = $bot.position().top;
bottom = top + $bot.outerHeight(true); //true is necessary to include the margins
var top = ($('#bottom').position().top) + ($('#bottom').height());