ai có thể cho tôi biết sự khác biệt giữa style.left
và element.offsetLeft
là gì?Sự khác nhau giữa style.left và element.offsetLeft
Trả lời
Bạn có thể đặt style.left
- người dùng có thể xác định và thậm chí có thể để trống, trong khi offsetLeft
luôn là chỉ đọc và luôn có vị trí hiện tại.
element.offsetLeft
Trả lại số pixel mà góc trên bên trái của phần tử hiện tại được bù đắp sang trái trong nút offsetParent.
elem.style.left
đó là một get tài sản còn lại của thuộc tính style
style
đề cập đến quy tắc css trong khi một trong những khác đề cập đến thực tế bù đắp của nguyên tố này, liên quan đến cha mẹ, không có vấn đề nếu định vị là do css hoặc cái gì đó khác, giống như một vật thể khác, khoảng cách, hoặc bất kì cái gì.
style.left
là định vị trái từ màn hình khung nhìn, trong khi element.offsetLeft
là trái bù đắp vị trí từ các yếu tố phụ huynh bên ngoài
element.offsetLeft
trả về khoảng cách từ cạnh bên trái của nút đến nút cha mẹ bằng pixel.
style.left
là các kiểu CSS cho nút, và có thể trong bất kỳ các định dạng: CSS Unit Formats
Vì vậy, element.style.left = element.offsetLeft + element.parentNode.offsetLeft? – user2155362
@ user2155362 Điều đó đúng. Xem [fiddle] (http://jsfiddle.net/pVGdc/9/). Chỉ cần nhớ offsetLeft là giá trị chỉ đọc. – cube
Sai: style.left không là gì theo mặc định vì 'vị trí' là' tĩnh'. Nó trở nên tương đối so với vị trí tĩnh của nó bởi 'vị trí: tương đối', liên quan đến khung nhìn bởi' vị trí: cố định', và tương đối so với giá trị bù thứ tự tiếp theo bởi 'position: absolute'. Vì vậy, offsetLeft nên được vị trí tương đối của nó, cộng với (và đây là một dự đoán) margin và biến đổi. – brannigan