Sử dụng getBoundClientRect để có được kích thước và vị trí của một phần tử
getBoundingClientRect , một phần của JavaScript DOM (Mô hình đối tượng tài liệu), cung cấp cho bạn những phần dữ liệu quan trọng về kích thước và vị trí của phần tử HTML .   Trong bài viết này, bạn sẽ sử dụng getBoundingClientRect để lấy kích thước và vị trí của một phần tử.
Yêu cầu
Để hoàn thành hướng dẫn này, bạn nên nắm rõ các khái niệm sau:
- Cách thêm JavaSCript vào HTML
- Cách truy cập các phần tử trong DOM
- Làm việc với Đối tượng trong JavaScript, mà bạn có thể khám phá bằng cách đọc Đối tượng đang chờ xử lý trong JavaScript .
 Hiểu getBoundingClientRect()
 Để sử dụng getBoundingClientRect , trước tiên hãy tìm nạp một phần tử HTML và gọi getBoundingClientRect trên phần tử:
document.getElementById("foo").getBoundingClientRect(); getBoundingClientRect trả về một đối tượng có một số cặp khóa / giá trị cung cấp cho bạn thông tin về kích thước và vị trí của phần tử trong trang web.
Output{   top: 450,   left: 400,   right: 825,   bottom: 500,   x: 400,     y: 450,     width: 425,   height: 50 } Hình minh họa sau đây mô tả thông tin được trả về cho mỗi giá trị:
 Giá trị x và y sẽ tương đương với giá trị left và giá trị top . Do đó, một số trình duyệt bỏ qua x và y và chỉ trả về left và top .
  Một điều nữa cần lưu ý  là right / bottom có thể khác với vị trí mà bạn đã quen với việc định vị CSS, như khi định vị bằng position: absolute .
Dưới đây là minh họa cho thấy các giá trị và cách chúng liên quan đến phần tử:
  Đến đây bạn  đã thấy những gì trả về getBoundingClientRect() , hãy sử dụng cùng một ví dụ để xem bạn có hiểu kết quả  kết quả  từ getBoundingClientRect() .
 Sử dụng getBoundingClientRect trong một ứng dụng
 Để sử dụng getBoundingClientRect trong mã  của bạn , bạn  cần  một  trang HTML  với một phần tử bạn muốn truy vấn.
 Tạo một file  HTML mới có tên là boundingbox.html trong editor  của bạn:
- nano boundingbox.html` 
Trong file , hãy tạo một  trang HTML  có chứa <div> trong <body> với id là hello “
<!DOCTYPE html> <html>   <head>     <meta charset="utf-8">     <title>useBoundingBox example</title>   </head>   <body>     <div id="hello">Hello World</div>   </body> </html> Khi bạn có một phần tử trên trang, bạn có thể gọi getBoundingClientRect trên phần tử #foo . Bên dưới thẻ đóng <body> , hãy thêm một <script> . Bên trong <script> , tìm nạp phần tử có id là hello và gọi getBoundingClientRect() . In kết quả ra console  JavaScript:
<body>   <div id="hello">Hello World</div>    <script>   const helloElement = document.getElementById('hello');   const results = helloElement.getBoundingClientRect();   </script>  </body> Lưu file  và tải boundingbox.html trong trình duyệt của bạn.
Control panel hiển thị kết quả này:
Outputbottom: 27.199996948242188 height: 19.199996948242188 left: 8 right: 1261 top: 8 width: 1253 x: 8 y: 8 Kết quả từ phần tử #hello cho bạn biết kích thước và vị trí của phần tử đó trên trang web. Bạn có thể sử dụng thông tin này để định vị các phần tử khác liên quan đến phần tử này, tạo hiệu ứng cho các phần tử và hơn thế nữa.
Kết luận
 Trong bài viết này, bạn đã thấy rằng getBoundingClientRect cung cấp một lượng dữ liệu phong phú về vị trí của một phần tử. Kể từ getBoundingClientRect là tương đối so với khung nhìn, bạn có thể thêm window.scrollY và window.scrollX giá trị vào top và left lĩnh vực để có được những yếu tố HTML của vị trí tương đối cho toàn bộ trang web.
 Nó được hỗ trợ  tin cậy  trên tất cả các trình duyệt dành cho máy tính để bàn và thiết bị di động , với việc loại trừ các giá trị x và y không ổn định trong các version  cũ hơn của Internet Explorer / Edge và Safari.
 Để biết thêm thông tin chi tiết về getBoundingClientRect bạn có thể đọc thông số kỹ thuật chính thức từ Mô-đun xem mô hình đối tượng CSS (CSSOM) của W3C.
Các tin liên quan
 

