Tôi có một div và muốn tìm vị trí dưới cùng. Tôi có thể tìm thấy vị trí hàng đầu của Div như thế này, nhưng làm cách nào để tìm vị trí dưới cùng?Tìm vị trí dưới cùng của một div với jquery
var top = $('#bottom').position().top;
return top;
Tôi có một div và muốn tìm vị trí dưới cùng. Tôi có thể tìm thấy vị trí hàng đầu của Div như thế này, nhưng làm cách nào để tìm vị trí dưới cùng?Tìm vị trí dưới cùng của một div với jquery
var top = $('#bottom').position().top;
return top;
Thêm outerheight đầu trang và bạn có đáy, liên quan đến các yếu tố phụ huynh:
var $el = $('#bottom'); //record the elem so you don't crawl the DOM everytime
var bottom = $el.position().top + $el.outerHeight(true); // passing "true" will also include the top and bottom margin
Với yếu tố hoàn toàn vị trí hoặc khi vị trí tương đối so với tài liệu, bạn sẽ cần phải thay vì đánh giá sử dụng bù đắp:
var bottom = $el.offset().top + $el.outerHeight(true);
Như được chỉ ra bởi trnelson điều này không hoạt động 100% thời gian. Để sử dụng phương thức này cho các phần tử định vị, bạn cũng phải tính toán bù trừ. Ví dụ, xem đoạn mã sau.
var bottom = $el.position().top + $el.offset().top + $el.outerHeight(true);
var bottom = $('#bottom').position().top + $('#bottom').height();
Đáy là top
+ các outerHeight
, không phải là height
, vì nó sẽ không bao gồm margin hoặc padding.
var $bot,
top,
bottom;
$bot = $('#bottom');
top = $bot.position().top;
bottom = top + $bot.outerHeight(true); //true is necessary to include the margins
Những câu trả lời cho đến nay sẽ làm việc .. nếu bạn chỉ muốn sử dụng chiều cao mà không cần đệm, biên giới, vv
Nếu bạn muốn chiếm đệm, biên giới, và lợi nhuận, bạn nên sử dụng .outerHeight
.
var bottom = $('#bottom').position().top + $('#bottom').outerHeight(true);
var top = ($('#bottom').position().top) + ($('#bottom').height());
EDIT: giải pháp này hiện đang trong câu trả lời gốc quá.
Câu trả lời được chấp nhận không hoàn toàn chính xác. Bạn không nên sử dụng hàm position() vì nó liên quan đến cha mẹ. (? Trong hầu hết các trường hợp) Nếu bạn đang làm định vị toàn cầu bạn chỉ nên thêm đỉnh bù đắp với outerheight như vậy:
var actualBottom = $(selector).offset().top + $(selector).outerHeight(true);
Các tài liệu http://api.jquery.com/offset/
Làm việc như một nét duyên dáng. Cảm ơn! – lagwagon223
Làm đẹp !! Điều này hoạt động tuyệt vời! – tim687
Tôi đã gửi bản chỉnh sửa nhưng đã bị từ chối. Câu trả lời này là đúng về mặt kỹ thuật trong ngữ cảnh này, nhưng không giải quyết được vấn đề 100% thời gian. Để sử dụng phương thức này cho các phần tử định vị, bạn cũng phải tính toán bù đắp: 'var bottom = $ ('# bottom'). Position(). Top + $ ('# bottom'). Offset(). Top + $ ('# bottom ') .outerHeight (true) ' – trnelson