Tôi đang viết một số mã bằng cách sử dụng Element.getBoundingClientRect
mã (gBCR), cùng với các cập nhật kiểu nội tuyến, để thực hiện các phép tính. Điều này không hoạt động cho các trang web chung, Tôi không quan tâm hay quan tâm đến việc liệu có "cách CSS tốt hơn" để hoàn thành nhiệm vụ này hay không.
JavaScript đồng bộ Chạy và thực hiện các bước sau:
- Nhận gBCR của cha mẹ
- thực hiện các phép tính;
- của phần tử chaphần tử conđã cập nhậtKiểu CSS nội tuyến(chẳng hạn như kích thước và lề)
- Lấy lại gBCR của cha mẹ
Tôi có thể đảm bảo rằng giới hạn khách hàng được tính toán sẽ phản ánh hình chữ nhật giới hạn mới của cấp độ gốc từ bước 4 không?
Nếu đặc điểm kỹ thuật không đảm bảo rằng hiện đại 1 Triển khai trình duyệtCó "đảm bảo" không"? Nếu "về cơ bản được đảm bảo", những trường hợp ngoại lệ đáng chú ý là gì?
元素KHÔNGKhi được thêm vào hoặc xóa khỏi DOM, phần tử được sửa đổi là phần tử con trực tiếp của nút cha nếu các hạn chế/thông tin đó có liên quan.
1"Hiện đại": UIWebView (iOS 6+), WebView (Android 2+) và Chrome/WebKit thông dụng, FF, IE9+ Đáng ngờ - 包括Phiên bản thiết bị di động.
Tôi chỉ gặp khó khăn với tính không đáng tin cậy của gBCR trên ios8.4.1/Safari8.0.
Chuẩn bị một div lớn ở trên cùng của nội dung (gBCR là 0) và cuộn xuống phía dưới (gBCR là âm). Thay đổi kích thước div thành 1x1 và sau đó window.scrollY
tự động trở thành 0. gBCR cũng phải bằng 0 nhưng vẫn âm. sử dụngsetTimeout
, sau 200ms bạn có thể xác nhận rằng giá trị đúng là 0.
Tôi là một lập trình viên xuất sắc, rất giỏi!