视口

布局视口

documnet.documentElement.clientWidth

视觉视口

document.innerWidth

适配

rem适配

/*媒体查询*/
/*布局时可能会用到*/
@media screen and (-webkit-device-pixel-ratio : 2) {

}
/*使用全局样式样式去掉*/
* {
    /* y轴可以缩放,x轴不行 */
    touch-action: pan-y;
}

动态设置

let style = document.createElement('style');
style.innerHTML = `html{font-size: ${document.documentElement.clientWidth / 16}px !important;}`;
document.head.appendChild(style);
// 阻止默认事件,如滚动
elem.addEventListener('touchstart', fn, { passive: false });

viewport适配

// 将所有视口的宽度调整为设计图宽度
// 需要在页面上写好 <meta name="viewport" content="width=device-width">
// 是为了获取理想视口的宽度, 如果不写这句话,布局适口默认为980
let targetWidth = 750;
let meta = document.querySelector('meta[name=viewport]');
let scale = document.documentElement.clientWidth / targetWidth;
meta.content = `initial-scale=${scale},maximum-scale=${scale},minimum-scale=${scale},user-scalable=no`;
12-14 05:38