2013-07-16 37 views
9

Tôi vừa phát hiện và thực sự thích getBoundingClientRect vì nó bao gồm độ chính xác của pixel phụ. Điều này đã cho phép tôi tạo liên kết nhất quán, ngay cả khi người dùng nhập Ctrl+ hoặc Ctrl + -.Hỗ trợ trình duyệt thuộc tính chiều rộng và chiều cao của getBoundingClientRect?

Nó có tính top, bottom, left, right, & width & height.

Thật đơn giản để tìm hỗ trợ trình duyệt trên internet, nhưng không quá nhiều cho các đặc tính widthheight nói riêng. Nó xuất hiện rằng điều này đã được thêm vào sau khi thực tế. Nó hoạt động trong Firefox, Chrome và IE10, nhưng điều gì về IE8 & IE9? Tôi không thể kiểm tra những thuận tiện.

+0

bạn có thể sử dụng các công cụ phát triển trong IE10 để đặt nó trong chế độ IE8? (Tôi không chắc chắn IE10 có thể làm điều đó, nhưng IE9 trong chế độ IE8 có lẽ sẽ nhận được một cái gì đó như thế đúng.) – Pointy

+0

Cũng là 'chiều rộng' khác nhau từ' phải - trái'? – Pointy

+0

* "sử dụng công cụ dành cho nhà phát triển" * Trong quá khứ, các công cụ F12 trong IE đã có thể phản ánh chính xác các trình phân tích cú pháp HTML và CSS cũ hơn, nhưng tôi nhận thấy nó không hoạt động chính xác trên các trình thông dịch JavaScript cũ. –

Trả lời

9

Trong IE9 như IE8:

document.body.getBoundingClientRect() 
[object] { 
    right : 2556, 
    top : 0, 
    bottom : 1195, 
    left : 0 
} 

Trong IE9 như IE9:

document.body.getBoundingClientRect() 
[object ClientRect] { 
    bottom : 1435, 
    height : 1435, 
    left : 0, 
    right : 2544, 
    top : 0, 
    width : 2544 
} 

Vì vậy, tôi muốn nói có trên IE9, không có trên IE8 ...

+2

IE 7 cũng không hỗ trợ chiều rộng và chiều cao. Cảm ơn Microsoft về trải nghiệm lập trình thú vị! – Phil

+1

Chúng tôi phát hiện ra rằng phải-trái trong IE8 được thực hiện như toán học số nguyên, trong khi chiều rộng trong IE9 có thể được thả nổi điểm. Một nửa điểm ảnh có thể đáng kể nếu bạn đang cố gắng xếp hàng hai phần tử trên một trang. –

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