2011-07-28 28 views
8

Tôi cần biết chiều rộng tính bằng pixel của phần tử có thuộc tính chiều rộng css được đặt trên 'tự động'. Tôi đã thử element.style.width nhưng không hoạt động vì nó trả về 'tự động'. Tôi nhận thấy rằng chiều rộng hàm jquery() trả về độ dài trong px, nhưng tôi không thể sử dụng jquery để giải quyết điều này, bởi vì nó không có sẵn trong trang của tôi. Vì vậy, không ai biết một methos tương đương cho chiều rộng jquery()?Tương đương Javascript cho chiều rộng jquery()

Cảm ơn.

+1

Có thể liên quan: [tài nguyên nhanh để tìm hiểu thêm về tất cả các chiều cao JS của] (http://stackoverflow.com/questions/6826758/quick-resource-to-learn-more- about-all-the-js-heights/6826798 # 6826798). – jensgram

+2

Hàm 'getWH()' trong [nguồn jQuery] (http://code.jquery.com/jquery-1.6.2.js) sẽ tiết lộ thực hiện. (Gọi với 'name =" width "'.) – jensgram

Trả lời

2

Về cơ bản, nó xuống đến .offsetWidth, nhưng mã jQuery phức tạp hơn một chút do sự khác biệt giữa các trình duyệt.

+1

Nó cũng được thực hiện một cách cực kỳ khác nhau trong các trình duyệt khác nhau để sử dụng một cái gì đó được kiểm tra như jQuery cho điều này có ý nghĩa .. – Tigraine

12

jQuery sử dụng ...

element.getBoundingClientRect().width 

nội bộ, nó có một số công cụ khác trên đầu trang để đối phó với sự khác biệt của trình duyệt.

Nó trả về kích thước kết xuất phần tử, trong đó .offsetxx trả về kích thước theo mô hình hộp.

element.getBoundingClientRect() 

Là cách chính xác nhất để có được các yếu tố "thực".

Đây là bài đăng của John Resig (tác giả của jQuery) về vấn đề này.

+0

Thực ra, thường là '$ el.width()' và '$ el.outerWidth()' cho tôi không, trong khi 'el.getBoundingClientRect(). width' cho tôi giá trị đúng, trên cả Firefox và Chrome mới nhất, sử dụng jQuery 2.1.4 –

Các vấn đề liên quan