首页 > 其他分享 >flexible.js

flexible.js

时间:2022-11-11 09:13:32浏览次数:34  
标签:body testElement js var window docEl flexible document

(function flexible(window, document) {
  var docEl = document.documentElement;
  var dpr = window.devicePixelRatio || 1;

  // adjust body font size
  function setBodyFontSize() {
    if (document.body) {
      document.body.style.fontSize = 12 * dpr + "px";
    } else {
      document.addEventListener("DOMContentLoaded", setBodyFontSize);
    }
  }
  setBodyFontSize();

  // set 1rem = viewWidth / 10
  function setRemUnit() {
    var rem = docEl.clientWidth / 24;
    docEl.style.fontSize = rem + "px";
  }

  setRemUnit();

  // reset rem unit on page resize
  window.addEventListener("resize", setRemUnit);
  window.addEventListener("pageshow", function(e) {
    if (e.persisted) {
      setRemUnit();
    }
  });

  // detect 0.5px supports
  if (dpr >= 2) {
    var fakeBody = document.createElement("body");
    var testElement = document.createElement("div");
    testElement.style.border = ".5px solid transparent";
    fakeBody.appendChild(testElement);
    docEl.appendChild(fakeBody);
    if (testElement.offsetHeight === 1) {
      docEl.classList.add("hairlines");
    }
    docEl.removeChild(fakeBody);
  }
})(window, document);

标签:body,testElement,js,var,window,docEl,flexible,document
From: https://www.cnblogs.com/rensk/p/16879494.html

相关文章

  • package.json文件干什么的 ?
    package.json是项目描述文件,记录了当前项目的信息,比如项目的名字,版本,作者,还有所依赖的第三方模块;dependencies是项目依赖,是项目上线时要依赖的第三方包;devdependenci......
  • js获取用户的经纬度-geolocation
    参考文章https://www.cnblogs.com/xgqfrms/p/12920409.htmlhttps://stackoverflow.com/questions/3397585/navigator-geolocation-getcurrentposition-sometimes-works-s......
  • How JWT (JSON Web Token) authentication works?
    HowJWT(JSONWebToken)authenticationworks?https://www.idiotinside.com/2019/09/26/how-jwt-authentication-works/WhatisJWT(JSONWeb Token)?JSONWebTo......
  • threejs raycaster 鼠标事件的监听
    91行,传入scene.childern,那么就是监听整个场景中所有的childern其实也可传入一个特定的物体的孩子,这样就会监听这个物体上的鼠标事件......
  • #yyds干货盘点#vue.config.js配置解析
    最近的项目都是基于vue2.0来做开发,这时候在配置webpack的时候遇到了个性化的配置,在根目录创建​​vue.config.js​​去完成​​webpack​​的一些特殊配置,默认它会被 ​​......
  • npm/yarn是什么,他们的区别 ? & node.js 又是个啥
    是什么?npm(全称Node PackageManager,即node包管理器),是Node.js默认的包管理系统;区别:yarn的速度开快,因为yarn是并行安装,npm是串行安装,yarn产生一......
  • 收集篇 之 那些好玩又实用 JS 工具代码段(不断更新 ing)
    LZ-Says:上班的时间过的真快,如何把握、如何更好的利用现有时间,是个问题,But,Justdoit前言Android小白,转战各个平台,虽说被虐,But,乐在其中。原谅我爱Android爱的如此深沉~......
  • [JSOI2016]最佳团体
    [JSOI2016]最佳团体#include<bits/stdc++.h>usingnamespacestd;inlineintread(){ charch=getchar(); ints=0,f=1; for(;!isdigit(ch);ch=getchar())if(ch=='......
  • 处理Retrofit MalformedJsonException报错
    使用Retrofit配合GsonConverter,我们能很好地将网络响应内容转换成对应的对象。比如像下面这样。Retrofit网络接口方法publicinterfaceDroidNetwork{@GET("/content......
  • JS中的Map形式(十一)
    东家蝴蝶西家飞,白骑少年今日归。愿,所有迷茫的人,都不再迷茫的,愿,所有努力工作的人,都可以得到应有的回报,愿,所有的人,都可以找到回家的方向,愿,再无苦痛,再无离别。上一章简单介绍......