h5横屏适配

  目录

h5移动端横屏适配

h5横屏适配

我们平时在移动端开发时,特别是一些互动小游戏,需要只能在竖屏或者横屏的状态下展示。
比如,我们现在有一个需求,要求只能横屏展示,无论用户的手机处于竖屏还是横屏状态,都展示横屏效果。
最常用的方式是利用css3的transform rotate,将页面旋转90度。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 利用 CSS3 旋转 对根容器逆时针旋转 90 度
var detectOrient = function() {
var width = document.documentElement.clientWidth,
height = document.documentElement.clientHeight,
$wrapper = document.getElementById("J_wrapper"),
style = "";

if( width >= height ){ // 横屏
style += "width:" + width + "px;"; // 注意旋转后的宽高切换
style += "height:" + height + "px;";
style += "-webkit-transform: rotate(0); transform: rotate(0);";
style += "-webkit-transform-origin: 0 0;";
style += "transform-origin: 0 0;";
}
else{ // 竖屏
style += "width:" + height + "px;";
style += "height:" + width + "px;";
style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);";
// 注意旋转中点的处理
style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;";
style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;";
}
$wrapper.style.cssText = style;
}
window.onresize = detectOrient;
detectOrient();

以上这段代码可以解决一些常见场景,如果场景更复杂,详见此文