Подтвердить что ты не робот

Поиск позиции дна div с jquery

У меня есть div и хочу найти нижнюю позицию. Я могу найти верхнюю позицию Div как это, но как найти нижнюю позицию?

var top = $('#bottom').position().top;
return top;
4b9b3361

Ответ 1

Добавьте внешний верх к вершине, и у вас есть нижняя часть относительно родительского элемента:

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(t‌​rue);

Ответ 2

EDIT: это решение также находится в исходном ответе.

Принятый ответ не совсем корректен. Вы не должны использовать функцию position(), поскольку она относительна к родительскому. Если вы занимаетесь глобальным позиционированием (в большинстве случаев?), Вы должны добавить только верхнюю часть смещения с внешним видом:

var actualBottom = $(selector).offset().top + $(selector).outerHeight(true);

Документы http://api.jquery.com/offset/

Ответ 3

Ответы до сих пор будут работать. Если вы хотите использовать высоту без заполнения, границ и т.д.

Если вы хотите учитывать заполнение, границы и маржу, вы должны использовать .outerHeight.

var bottom = $('#bottom').position().top + $('#bottom').outerHeight(true);

Ответ 4

var bottom = $('#bottom').position().top + $('#bottom').height();

Ответ 5

Нижняя часть 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

Ответ 6

var top = ($('#bottom').position().top) + ($('#bottom').height());