移动端 H5 分屏页面适配问题--设计稿比例与设备宽高比例不同

移动端 H5 分屏页面适配问题

单位问题

肯定用rem, 为了方便计算,一般取 1rem=100px(设计稿px), 需要根据设计稿的宽度设置合适的fontSize, 具体可以看这篇文章 :移动端根据设计稿宽度适配 px转换相对单位rem

屏幕适配问题

现在的设备宽高五花八门,按照rem 计算总是会出问题,因为设备的宽高比例是不同的,而设计稿的宽高是不变的,如果按照设计稿的尺寸来做,那么必须要求设备的宽高比例和设计稿是相同的,否则就会重叠或者间距过大。针对这个问题可以做一下适配,以下代码可以保证不会发生重叠:

(function (doc, win) {
	var docEl = doc.documentElement,
	resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
	recalc = function () {
		var clientWidth = docEl.clientWidth;
		var clientHeight = docEl.clientHeight;
		if (clientWidth>=640) {
			clientWidth = 640;
		};
		if (!clientWidth) return;
		// 1rem=100px(设计稿px) 设计稿宽度1080
		var fontSize = 100 * (clientWidth / 1080); 
		var picRate = 0.5625; // 设计稿的宽高比例
		var expectHeight = clientWidth / picRate;
		if(clientHeight < expectHeight){
			var heightDiff = expectHeight - clientHeight;
			var heightDiffRate = heightDiff / clientHeight;
			fontSize = fontSize * (1 - heightDiffRate);
		}
		
		docEl.style.fontSize = fontSize + 'px';
	};
	if (!doc.addEventListener) return;
	win.addEventListener(resizeEvt, recalc, false);
	doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优小U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值