2012-05-09 42 views
9

Tôi đang cố gắng lấy kích thước màn hình có sẵn trong iPhone Safari để thu nhỏ vùng chứa xuống độ cao của màn hình, trừ thanh trạng thái và thanh công cụ.iPhone Safari screen.availHeight và thanh trạng thái/thanh công cụ/thanh địa chỉ

Vì iOS luôn trả về kích thước màn hình như điện thoại đang ở hướng dọc, tôi đang sử dụng screen.availWidth để tính chiều cao theo chiều ngang. Sau đây là các kích thước trở lại: chiếm

screen.width; //320 
screen.availWidth; //300 

các 20px khác biệt cho statusbar hàng đầu trên điện thoại nhưng không đưa vào tài khoản thanh nút (thanh công cụ) ở dưới cùng của màn hình.

Có bất kỳ thuộc tính nào tôi có thể sử dụng sẽ trả lại 268px không?

Tôi chỉ làm (screen.availWidth - 32) nhưng có khả năng người dùng sẽ thêm trang web làm dấu trang trên máy tính để bàn, trong trường hợp này thanh này sẽ không xuất hiện và giá trị 300px sẽ chính xác.

+0

Sau nhiều nghiên cứu và thử nghiệm, availWidth là 300 có ý nghĩa - đó là chiều cao trừ thanh trạng thái 20px. Nói cách khác, trừ Chrome hệ điều hành và không phải là trình duyệt chrome. Giá trị cũng không chính xác đối với phiên bản iOS cũ hơn và vì vậy tôi không khuyên bạn nên dựa vào nó quá nhiều. – howard10

+0

Kiểm tra câu trả lời của tôi cho câu hỏi tương tự, có thể giúp một chút http://stackoverflow.com/questions/8205812/jquery-js-ios-4-and-document-height-problems –

Trả lời

10

Tôi không có câu trả lời chính xác, nhưng bạn có thể xác định xem người dùng có ở trong Mobile Safari hoặc trong dấu trang trên máy tính với thuộc tính navigator.standalone. Với điều này bạn có thể quyết định có nên trừ 32px hay không.

Chỉnh sửa: Tìm câu trả lời. Sử dụng <meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" /> và sau đó giá trị chính xác có thể lấy từ window.innerWidth/window.innerHeight

+0

Sau khi đọc [this] (http: // tripleodeon.com/2011/12/first-understand-your-screen/), tôi đã đi đến kết luận tương tự. Cám ơn đã chỉ tôi hướng đi đúng. – howard10

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