Đây là một giải pháp khá hacky, nhưng nó ít nhất một cái gì đó (?). Ý tưởng là sử dụng chuyển đổi CSS để xoay nội dung của trang sang chế độ bán dọc. Dưới đây là mã JavaScript (được thể hiện trong jQuery) để giúp bạn bắt đầu:
$(document).ready(function() {
function reorient(e) {
var portrait = (window.orientation % 180 == 0);
$("body > div").css("-webkit-transform", !portrait ? "rotate(-90deg)" : "");
}
window.onorientationchange = reorient;
window.setTimeout(reorient, 0);
});
Mã hy vọng toàn bộ nội dung trang của bạn sẽ nằm bên trong phần tử bên trong phần tử nội dung. Nó quay mà div 90 độ trong chế độ phong cảnh - trở lại chân dung.
Còn lại như một bài tập cho người đọc: div quay quanh điểm giữa của nó, vì vậy vị trí của nó có thể sẽ cần phải được điều chỉnh trừ khi nó hoàn toàn vuông.
Ngoài ra, có vấn đề về hình ảnh không hấp dẫn. Khi bạn thay đổi hướng, Safari quay chậm, khi đó div cấp cao nhất sẽ quay sang 90 độ khác nhau. Để có nhiều niềm vui hơn, hãy thêm
body > div { -webkit-transition: all 1s ease-in-out; }
vào CSS của bạn. Khi thiết bị quay, thì Safari thực hiện, sau đó nội dung của trang của bạn sẽ thực hiện. Bắt đầu!
Toàn bộ lý do để xây dựng một ứng dụng web và không phải là một ứng dụng gốc là vì vậy nó có thể được nền tảng chéo, tại sao bạn sẽ xây dựng một ứng dụng web cụ thể iPhone, bạn đang tìm kiếm viết mã thêm để khóa điện thoại khác ??? –
Có thể đó là bản trình diễn ... – xdhmoore
Liên quan: http://stackoverflow.com/questions/5298467/prevent-orientation-change-in-ios-safari – xdhmoore