h5的横屏适配

野生程序猿-杂烧4年前随意分享1313

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

ssssss.png


老师提意见,说字太小看不清。本来让客户开个屏幕旋转就可以了,但是因为要求老师、学生都多做一步太麻烦(我们的宗旨是不麻烦客户)。于是要做个旋转横屏效果。

于是进行代码改造来解决,主要是旋转,以及新的宽高计算。因为我开发一直用的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,输入法出来后可以再计算尺寸,不是歪的。

标签: angular.js

相关文章

按键精灵+大漠插件 打boss(脚本demo1)

前面介绍了大漠插件,这里再来个复杂点的打boss脚本//初始化数据 //地图信息 //副本坐标 ditux = -230 dituy = -190...

前端有没必要学习photoshop

前端有没必要学习photoshop

  现在前端开发已经工程化,可以说前端前几年的受欢迎程度已经超过后端。再加上javascript的后端语言nodejs,让前端或者说前后端全栈更受欢迎。  在我就职的几家公司里,遇到了不少前端、后端,...

按键精灵+大漠插件 打boss(脚本demo2)

前面介绍了大漠插件,这里再来个复杂点的打boss脚本Rem 开始循环检查进入副本 //激活窗口 Call Plugin.WindowEx5_01.SendMouse(h...

vue通过组件的方式制作教学软件翻牌游戏环节

vue通过组件的方式制作教学软件翻牌游戏环节

为了方便学生记忆学习,将记忆知识点做成了翻牌游戏形式。由于记忆点知识比较多,我们可以设计成多个关卡,每个关卡就是一些知识点配置,通过组件的形式加载,更为合理,更为方便。【fanpai.vue】<...

nodejs同步操作sqlite3类

electron是基于nodejs的,为了方便electron存储,想到了sqlite这种轻便数据库。作为桌面应用,不像nodejs写服务端,为了简化开发,所以写了个同步的操作sqlite的类库,需要...

nodejs同步mysql操作类

nodejs越来越火了,打算稍微在深入学习一下,于是把php的mysql操作类库稍微改了一下,为了保留php思路,这里加入了同步的方法。简单测了一下,本地 没有问题,不知道同步在多人访问时候是否有坑,...