Làm mới bộ nhớ của tôi về vị trí cài đặt, tôi đến đây rất muộn Tôi không biết liệu có ai khác sẽ nhìn thấy nó không, nhưng -
Tôi không thích cài đặt vị trí bằng cách sử dụng css()
, mặc dù thường thì nó vẫn ổn. Tôi nghĩ rằng cách tốt nhất là sử dụng trình position()
thiết lập của UI UI như được ghi nhận bởi xdazz. Tuy nhiên, vì một số lý do, giao diện người dùng jQuery không phải là một tùy chọn (chưa có jQuery), tôi thích điều này:
const leftOffset = 200;
const topOffset = 200;
let $div = $("#mydiv");
let baseOffset = $div.offsetParent().offset();
$div.offset({
left: baseOffset.left + leftOffset,
top: baseOffset.top + topOffset
});
Điều này có lợi thế là không tự ý đặt $div
cha mẹ thành định vị tương đối (nếu chính $div
cha mẹ của nó, vị trí tuyệt đối bên trong một thứ khác thì sao?). Tôi nghĩ rằng chỉ lớn trường hợp cạnh là nếu $div
không có bất kì offsetParent
, không chắc chắn nếu nó sẽ quay trở lại document
, null
hoặc một cái gì đó hoàn toàn khác.
offsetParent
đã có sẵn từ jQuery 1.2.6, đôi khi vào năm 2008, vì vậy kỹ thuật này hoạt động ngay bây giờ và khi câu hỏi ban đầu được hỏi.
$("#mydiv").css({top: '200px', left: '200px', position:'absolute'});
<- tốt$("#mydiv").css({top: '200', left: '200', position:'absolute'});
<- xấu. Rõ ràng, nếu các giá trị vị trí là các chuỗi , bạn phải bao gồm các đơn vị, hoặc nó sẽ không có hiệu lực.