2011-08-10 32 views
5

Nếu tôi có đánh dấu sau:jQuery với phương pháp vị trí

<div id="parent" style="width: 300px; height: 300px;"> 
    <div id="child" style="position: relative; left: 0; top: 0; width: 100px; height: 100px;"></div> 
</div> 

và tôi muốn có được vị trí của trẻ em liên quan đến mẹ của nó, cách duy nhất sẽ như sau ?:

x = parseInt($('#child').css('left')); // returns 0 as needed 
y = parseInt($('#child').css('top')); // return 0 as needed 

Bởi vì nếu tôi làm như sau:

x = $('#child').position().left; // most likely will not return 0 
y = $('#child').position().top; // most likely will not return 0 

vị trí là sai do thực tế rằng phương pháp bù đắp hiện một lso thêm lề, đệm và đường viền của ông bà (có thể là phần tử thân với lề mặc định của nó hoặc bất kỳ phần tử ông bà nào khác).

Tôi cần phải có được vị trí đúng (trong ví dụ của tôi nó sẽ là 0, 0) nhưng tôi nghi ngờ không có phương pháp trong jQuery có thể tính toán nó cho tôi?

+2

Lưu ý: $ ('# child'). Css ('top') có thể cung cấp "tự động" nếu đầu rõ ràng không được chỉ định. –

Trả lời

7

.position() là chính xác. Nó sẽ cung cấp cho bạn các giá trị xy liên quan đến phụ huynh bù trừ của phần tử. Phần tử #child của bạn được định vị tương ứng với phụ huynh bù trừ của riêng nó, là <body>. Để tạo #parent cha mẹ bù của nó, hãy đặt cho nó position của relative hoặc absolute.

<div id="parent" style="position: relative; width: 300px; height: 300px;"> 
    <div id="child" style="position: relative; left: 0; top: 0;...;"></div> 
</div> 
2

Phương thức .position() cho phép chúng tôi lấy vị trí hiện tại của phần tử liên quan đến cha mẹ bù. Tương phản điều này với .offset(), lấy vị trí hiện tại liên quan đến tài liệu. Sử dụng .offset()

Các vấn đề liên quan