rem js相关

!function(n){
    var  e=n.document,
         t=e.documentElement,
         i=720,
         d=i/100,
         o="orientationchange"in n?"orientationchange":"resize",
         a=function(){
             var n=t.clientWidth||320;n>720&&(n=720);
             t.style.fontSize=n/d+"px"
         };
         e.addEventListener&&(n.addEventListener(o,a,!1),e.addEventListener("DOMContentLoaded",a,!1))
}(window);

规则就是,调用函数,放两个参数,第一个参数,是设计稿的宽度,第二个参数是px与rem的转换比例,通常会写100(因为好算);当然了,要把这段js代码最好封装在一个单独的js文件里,并且放在所有的css文件引入之前加载。

其中 var n=t.clientWidth||320;n>720&&(n=720);的意思是:如果clientWidth的值获取不到,n就等于320,如果n>720成立就会执行n=720的操作

M && N中,若M为假,则N不被执行;
M||N中,若M为真,则N不被执行。

上面这段js手机上在有表单的时候,在输入法弹出的时候会失灵

代码一:

(function(win) {
	if(!win.addEventListener) return;
	var html = document.documentElement;

	function setFont() {
		function setRem() {
			var cliWidth = html.clientWidth;
			var w = document.documentElement.clientWidth,
				h = document.documentElement.clientHeight;
			var val = 640;

			if(w >= 640) {
				cliWidth = 640;
			}
			//                        if(w > h) {
			//                            //横屏
			//                            val = 1334;
			//                        }
			html.style.fontSize = 100 * (cliWidth / val) + ‘px‘;
		}
		setRem();
		setTimeout(function() {
			setRem();
		}, 300);

	}
	win.addEventListener(‘resize‘, setFont, false);
	setFont();
})(window);

广州品牌设计公司https://www.houdianzi.com PPT模板下载大全https://redbox.wode007.com

代码二 :

//屏幕适应
(function(win, doc) {
	if(!win.addEventListener) return;
	var html = document.documentElement;
	function setFont() {
		var html = document.documentElement;
		var cliWidth = html.clientWidth;
		var k = 640;
		if(cliWidth >= 640) {
			cliWidth = 640;
		}
		html.style.fontSize = cliWidth / k * 100 + "px";
	}
	setFont();
	setTimeout(function() {
		setFont();
	}, 300);
	doc.addEventListener(‘DOMContentLoaded‘, setFont, false);
	win.addEventListener(‘resize‘, setFont, false);
	win.addEventListener(‘load‘, setFont, false);
})(window, document);
posted @ 2020-12-07 14:54  酷儿q  阅读(79)  评论(0)    收藏  举报