移动端定屏适配

1. 简述:

		项目中经常遇到某些页面铺满全屏,切换整屏的需求,适配问题随之而来,比如 6s 标准16:9,以6s 做为标准模板,粪叉偏长,pad 和 6p等偏宽,页面中某些元素根据屏幕定位时候,在不同的机型预览,效果不同,美观性很差,在不断尝试中找到了一下解决方案,效果还不错

2. 函数体

		//获取屏幕宽高,并计算屏幕比例
        var myHeight = $(window).height()
        var myWidth = $(window).width()
        var per = myHeight/myWidth
         //宽屏 高配宽
        if(per<=16/9){
            $(mySelector).css({
                'width':myHeight/16*9,
                'left':(myWidth-myHeight/16*9)/2,
                'top':(myHeight-myHeight)/2,
                'height':myHeight
            })     
        }else{
			// 长屏 宽配高
            $(mySelector).css({
                'height':myWidth/9*16,
                'top':(myHeight-myWidth/9*16)/2,
                'width':myWidth,
                'left':(myWidth-myWidth)/2
            }) 
        }

定屏适配

3.根字号设定

适配中包括字号适配,大屏大字,小屏小字。(在Pad中看到的字号要比6S中的字号大)
使用rem适配虽然可以保证dom元素大小适配,但是在pad中文字由于rem适配变大常常会超出其区域,某些情况下会挤掉或者遮挡其他元素的位置,处理方式如下

修改后的rem.js:

//1.获取屏幕像素比的倒数
        var num = 1/window.devicePixelRatio;
        //2.动态创建适口标签
        var meta=document.createElement('meta');
        meta.setAttribute('name','viewport');
        meta.setAttribute('content','width=device-width, user-scalable=no, initial-scale='+num+', maximum-scale='+num+', minimum-scale='+num+'');
        document.head.appendChild(meta);
        3.设置html字体,为整个页面的10/1
            var myHeight = $(window).height()
			var myWidth = $(window).width()

			//宽屏 高配宽 长屏 宽配高 处理PC 定屏和Pad定屏
			var per = myHeight/myWidth
			if(per<=16/9){ 
				//如果是pad 或者PC网页等打开移动端页面,自动以安全区重新计算根字号,防止文字过大溢出
				document.documentElement.style.fontSize=(myHeight/16*9)/10+'px';
			}else{
				document.documentElement.style.fontSize=window.innerWidth/10+'px';							
			}

以上方案解决了定屏 移动端页面的适配问题
如非定屏,即页面可滑动 单独使用以下rem.js 即可

 //1.获取屏幕像素比的倒数
        var num = 1/window.devicePixelRatio;
        //2.动态创建适口标签
        var meta=document.createElement('meta');
        meta.setAttribute('name','viewport');
        meta.setAttribute('content','width=device-width, user-scalable=no, initial-scale='+num+', maximum-scale='+num+', minimum-scale='+num+'');
        document.head.appendChild(meta);
        3.设置html字体,为整个页面的10/1
            var myHeight = $(window).height()
			var myWidth = $(window).width()
			document.documentElement.style.fontSize=window.innerWidth/10+'px';							
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值