Có thể thay đổi vị trí DIV từ tuyệt đối thành tương đối (và từ tương đối so với tuyệt đối) không? DIV sẽ vẫn ở cùng một vị trí.Chuyển đổi vị trí tuyệt đối thành số
Trả lời
bạn có thể thay đổi thuộc tính với
$(object).css({position: 'absolute'});
Ví dụ:
Bạn có thể sử dụng phương pháp của jQuery .position()
hoặc .offset()
để thiết lập "đỉnh" và thuộc tính css "trái" là tốt, như vậy đối tượng của bạn nên ở lại tại vị trí của nó thay đổi từ tương đối -> tuyệt đối.
Tôi không nghĩ rằng nó hoạt động ngược lại.
code demo: http://jsbin.com/uvoka
$ (đối tượng) .css ({position: 'absolute', top: dy, left: dx}); clone.css ({position: 'relative'}); không hoạt động - vị trí phần tử sau khi thay đổi thành vị trí tương đối, vị trí khác nhau nhưng khi tôi lưu trữ bù trừ và đặt lại sau khi thay đổi thành vị trí tương đối, vị trí là $ (đối tượng) .css ({position: 'absolute') : dy, left: dx}); var x = clone.offset(). Left; var y = clone.offset(). clone.css ({position: 'relative'}); offset ({top: y, left: x}); – John
ví dụ nhanh của possibilitys: http://jsbin.com/uvoka Kind Regards, --Andy – jAndy
Các gợi ý "giải pháp" là không chuyển đổi bất cứ điều gì !!! –
Bạn có thể khá dễ dàng thay đổi nó từ liên quan đến tuyệt đối bằng cách sử dụng nó offsetLeft và offsetTop giá trị như phong cách trái và đỉnh.
Cách khác xung quanh khó hơn. Bạn về cơ bản sẽ phải thay đổi nó thành tương đối và xem nơi nó kết thúc, sau đó tính toán các giá trị bù đắp mới từ bù đắp hiện tại và vị trí mong muốn.
Lưu ý rằng khi định vị tương đối, phần tử là một phần của luồng trang và có thể ảnh hưởng đến các yếu tố khác. Khi vị trí tuyệt đối, phần tử nằm ngoài luồng trang và không ảnh hưởng đến các phần tử khác. Vì vậy, nếu bạn thay đổi giữa vị trí tuyệt đối và tương đối, bạn có thể cần thực hiện các thay đổi đối với các phần tử khác nếu bạn không muốn chúng di chuyển.
Bởi vì định dạng trong ý kiến là không làm việc tôi sẽ công bố giải pháp ở đây
$(object).css({position: 'absolute',top: dy, left:dx});
// dy, dx - some coordinates
$(object).css({position: 'relative'});
Không làm việc: Vị trí nguyên tố sau khi thay đổi để tương đối là khác nhau.
Nhưng khi tôi lưu trữ bù đắp và đặt nó một lần nữa sau khi thay đổi để tương đối, vị trí là như nhau:
$(object).css({position: 'absolute',top: dy, left:dx});
var x = $(object).offset().left;
var y = $(object).offset().top;
$(object).css({position: 'relative'});
$(object).offset({ top: y, left: x });
Thx để chia sẻ nội dung này. thực sự đã giúp tôi. –
mã này có thay đổi từ tuyệt đối thành tương đối không ?? – Varun
prototype.js có element.absolutize() và element.relativize mà làm việc rất tốt.
Vấn đề với đi từ liên quan đến tuyệt đối là element.offsetTop và offsetLeft
chỉ cung cấp cho các bù đắp của nguyên tố của bạn để mẹ của nó. Bạn cần phải đo cumualtive bù đắp (tức
the offset of your element to its parent +
the offset of the parent to its parent +
the offset of its parent to its parent +
vv)
Tôi luôn tự hỏi phương pháp này thực sự là gì? Liệu nó có làm cho một phần tử con không phải là 'cơ thể' duy trì vị trí của nó, trong khi gắn nó vào phần thân của tài liệu không? Hay nó chỉ là 'absolutise' một yếu tố liên quan đến cha mẹ của nó? Nếu nó là sau này, sau đó tôi sẽ sử dụng các giải pháp, trên của bạn. Cảm ơn –
Nếu bạn thực sự muốn có được tổng đầu bù đắp của một phần tử đó là một đứa trẻ của các nguyên tố với vị trí tuyệt đối và tương đối bạn có thể sử dụng chức năng này
function calcTotalOffsetTop(elm)
{
var totalOffsetTop = 0,
curr = elm;
while(curr.parent().is(':not(body)'))
{
curr = curr.parent();
totalOffsetTop += curr[0].offsetTop;
}
return totalOffsetTop;
}
đây là mã cơ bản cho giải pháp do plodder đưa ra ở trên.
Điều này là hoàn hảo cho các yếu tố bên trong một phụ huynh không phải là cơ thể, đó là chính xác những gì tôi yêu cầu. Cảm ơn. Tôi thực sự, sử dụng framework prototype.js, vì vậy tôi đã tự hỏi liệu 'absolutize()' có thực hiện điều tương tự không, như đã đề cập dưới đây, nhưng tôi có cảm giác nó chỉ làm cho một phần tử 'tuyệt đối', liên quan đến cha mẹ chứ không phải tài liệu body.So, tôi sẽ sử dụng giải pháp của bạn ... –
- 1. MPDF vị trí tuyệt đối
- 2. vị trí: tuyệt đối, div theo div
- 3. Vị trí tuyệt đối và tràn ẩn
- 4. Sửa vị trí tuyệt đối trong Android
- 5. .offset() lỗi với vị trí tuyệt đối?
- 6. Thêm văn bản vị trí tuyệt đối
- 7. Định vị tuyệt đối bên trong vị trí tương đối?
- 8. Định vị SVG như vị trí: tuyệt đối
- 9. vị trí mẫu email tuyệt đối?
- 10. Vị trí tuyệt đối không hoạt động
- 11. chuyển CSS trộn tuyệt đối và tương đối vị
- 12. Căn chỉnh với vị trí tương đối và tuyệt đối
- 13. vị trí: xuất hiện tương đối trên vị trí: tuyệt đối
- 14. jquery: tôi có thể animate vị trí: tuyệt đối với vị trí: tương đối không?
- 15. Vấn đề với vị trí IE: tuyệt đối
- 16. Chuyển đổi đường dẫn SVG thành các lệnh tuyệt đối
- 17. Lỗi tràn CSS bị ẩn với vị trí tuyệt đối
- 18. Vị trí tuyệt đối và tràn tràn trong CSS
- 19. Z-Index không có vị trí tuyệt đối
- 20. IFRAME và vị trí tuyệt đối mâu thuẫn
- 21. Hiển thị một liên kết vị trí tuyệt đối
- 22. Vị trí CSS tuyệt đối đối với phần tử cha mẹ hoạt động tương đối
- 23. Vị trí: chiều cao tuyệt đối và phụ huynh?
- 24. Cần một vị trí cố định div bên trong một div vị trí tuyệt đối
- 25. vị trí tuyệt đối được xoay phần sang góc phải
- 26. Xoay và vị trí: tuyệt đối (IE8 và thấp hơn)
- 27. overflow: hidden không cắt nội dung vị trí tuyệt đối
- 28. 100% TextArea trong FireFox sử dụng vị trí tuyệt đối
- 29. Đặt vị trí tuyệt đối của chế độ xem
- 30. Cách xóa Thuộc tính trái khi vị trí: tuyệt đối?
Bạn đang hỏi "Liệu nó có còn ở cùng một chỗ không?". Nếu vậy, có nó sẽ, nhưng là tương đối, nó sẽ được trong dòng tài liệu, tuyệt đối, nó sẽ không. – Zoidberg
Tôi có các phần tử được định vị hoàn toàn cần được chuyển đổi thành tương đối.Vấn đề là tôi không thể tính toán vị trí tương đối đúng (trên cùng, bên trái), vì vậy các yếu tố sẽ được lưu giữ trên vị trí của chúng. – John