Jonathan Snook提供了解决此问题的方法。在他的幻灯片这里,他展示了如何(有点)锁定为竖屏(参见第54和55张幻灯片)。
来自这些幻灯片的JS代码:
window.addEventListener('orientationchange', function () {
if (window.orientation == -90) {
document.getElementById('orient').className = 'orientright';
}
if (window.orientation == 90) {
document.getElementById('orient').className = 'orientleft';
}
if (window.orientation == 0) {
document.getElementById('orient').className = '';
}
}, true);
以及 CSS:
.orientleft #shell {
-webkit-transform: rotate(-90deg);
-webkit-transform-origin:160px 160px;
}
.orientright #shell {
-webkit-transform: rotate(90deg);
-webkit-transform-origin:230px 230px;
}
我尝试在iPhone上实现横屏,但它从未完全正确地显示。然而,我用了下面这段jQueryian代码,接近实现了。代码应该放在onready函数中。另外请注意:这是在“添加到主屏幕”的上下文环境中使用的,我认为这会改变tranform-origin的位置。
$(window).bind('orientationchange', function(e, onready){
if(onready){
$(document.body).addClass('portrait-onready');
}
if (Math.abs(window.orientation) != 90){
$(document.body).addClass('portrait');
}
else {
$(document.body).removeClass('portrait').removeClass('portrait-onready');
}
});
$(window).trigger('orientationchange', true);
而且 CSS 代码是:
.portrait {
-webkit-transform: rotate(90deg);
-webkit-transform-origin: 200px 190px;
}
.portrait-onready {
-webkit-transform: rotate(90deg);
-webkit-transform-origin: 165px 150px;
}
希望这能帮助某人接近所需的结果...