Điều này mở rộng trên một câu trả lời trước. Giải pháp tốt nhất mà tôi đã tìm thấy là tạo một thuộc tính CSS vô hại chỉ xuất hiện nếu một truy vấn phương tiện CSS3 được đáp ứng, và sau đó có bài kiểm tra JS cho thuộc tính đó.
Vì vậy, ví dụ, trong CSS bạn có:
@media screen only and (orientation:landscape)
{
// Some innocuous rule here
body
{
background-color: #fffffe;
}
}
@media screen only and (orientation:portrait)
{
// Some innocuous rule here
body
{
background-color: #fffeff;
}
}
Sau đó, bạn truy cập JavaScript (Tôi đang sử dụng jQuery cho các cuộc vui). Khai báo màu có thể là lạ, vì vậy bạn có thể muốn sử dụng một cái gì đó khác, nhưng đây là phương pháp hoàn hảo nhất mà tôi đã tìm thấy để thử nghiệm nó. Sau đó, bạn có thể chỉ cần sử dụng sự kiện thay đổi kích thước để chọn chuyển đổi. Đặt tất cả lại với nhau cho:
function detectOrientation(){
// Referencing the CSS rules here.
// Change your attributes and values to match what you have set up.
var bodyColor = $("body").css("background-color");
if (bodyColor == "#fffffe") {
return "landscape";
} else
if (bodyColor == "#fffeff") {
return "portrait";
}
}
$(document).ready(function(){
var orientation = detectOrientation();
alert("Your orientation is " + orientation + "!");
$(document).resize(function(){
orientation = detectOrientation();
alert("Your orientation is " + orientation + "!");
});
});
Phần tốt nhất của điều này là khi tôi viết câu trả lời này, nó dường như không có bất kỳ ảnh hưởng nào đến giao diện máy tính để bàn, vì chúng (nói chung) không (dường như) chuyển bất kỳ đối số nào để định hướng cho trang.