h5的横屏适配

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

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

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

相关文章

IPMI模块介绍,远程开机走起来

IPMI模块介绍,远程开机走起来

作为野生程序猿,生活中经常使用开发技术。这里给大家介绍一个好东西 IPMI 。 很多开发人员居然没听说过这个东西,看来做技术还是太不上心了,工作之外的积累太少了。IPMI...

GPS经纬度坐标系转换【js版】

万能的javascript版也来了,前端、后端nodejs都能用。<html> <body> <script>  /**   ...

推荐一个前端框架Svelte(超级轻量级)

现在的前端框架太多了,国内用得比较多的是vue,非常强大,但是个人感觉灵活性糟糕,代码比较繁琐。近期接触一个框架,顿时让我感觉非常的爽,一种似曾相似的感觉,这个框架就是Svelte。Svelte是一个...

时序数据库推荐taos

  时序数据库(Time Series Database,TSDB) 全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间...

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

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

nodejs同步mysql操作类

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