h5的横屏适配
最近遇到一个问题,我们开发的软件是横屏软件,因客户群体主要是学校,就是使用者是老师和学生。本来软件设计的是电脑机房里用,现在学校希望手机也可以用。结果手机用起来就是这个现象。

老师提意见,说字太小看不清。本来让客户开个屏幕旋转就可以了,但是因为要求老师、学生都多做一步太麻烦(我们的宗旨是不麻烦客户)。于是要做个旋转横屏效果。
于是进行代码改造来解决,主要是旋转,以及新的宽高计算。因为我开发一直用的rem单位,所以只要插件式开发就可以了
function app_size()
{
var $scope=app.$scope;
var bili=1.77778;
var all_width=window.innerWidth;
var all_height=window.innerHeight;
var rotate=0;
if(all_height>all_width*bili)
{
var WW=all_width;
var HH=Math.floor(all_width*bili);
}else{
var HH=all_height;
var WW=Math.floor(all_height/bili);
}
if(rotate==90)
{
var top='left';
var left='top';
var margin_left=(all_height-HH)/2+HH;
var margin_top=(all_width-WW)/2;
var leftx=(all_width-WW)/2+WW;
var topx=(all_height-HH)/2;
}else{
var top='top';
var left='left';
var margin_left=(all_width-WW)/2;
var margin_top=(all_height-HH)/2;
var leftx=(all_width-WW)/2;
var topx=(all_height-HH)/2;
}
$scope.rotate = rotate;
$scope.WW = WW;
$scope.HH = HH;
$scope.app_width = WW;
$scope.app_height = HH;
$scope.all_width = all_width;
$scope.all_height = all_height;
$scope.top = top;
$scope.left = left;
$scope.topx = topx;
$scope.leftx = leftx;
$scope.margin_top = margin_top;
$scope.margin_left = margin_left;
$("html").css("font-size",WW + "px");
app.update();
}虽然很惭愧还是用的jquery,但是好在我是用的jquery+angular.js,可以通过插件的原理,修改框架css,不需要动源代码。更主要的是监听resize,输入法出来后可以再计算尺寸,不是歪的。


