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);