zoukankan      html  css  js  c++  java
  • vue的rem转换

    1.在static下放一个js,内容如下
    2.在index.html引入<script src="./static/rem.js"></script>



    /**
    * Created by Administrator on 2017/5/4 0004.
    */
    !function(win) {
    function resize() {
    var domWidth = domEle.getBoundingClientRect().width;
    if(domWidth / v > 540){
    domWidth = 540 * v;
    }
    win.rem = domWidth / 3.75;
    domEle.style.fontSize = win.rem + "px";
    }
    var v, initial_scale, timeCode, dom = win.document, domEle = dom.documentElement, viewport = dom.querySelector('meta[name="viewport"]'), flexible = dom.querySelector('meta[name="flexible"]');
    if (viewport) {
    //viewport??<meta name="viewport"content="initial-scale=0.5, minimum-scale=0.5, maximum-scale=0.5,user-scalable=no,minimal-ui"/>
    var o = viewport.getAttribute("content").match(/initial-scale=(["']?)([d.]+)1?/);
    if(o){
    initial_scale = parseFloat(o[2]);
    v = parseInt(1 / initial_scale);
    }
    } else {
    if (flexible) {
    var o = flexible.getAttribute("content").match(/initial-dpr=(["']?)([d.]+)1?/);
    if(o){
    v = parseFloat(o[2]);
    initial_scale = parseFloat((1 / v).toFixed(2))
    }
    }
    }
    if (!v && !initial_scale) {
    var n = (win.navigator.appVersion.match(/android/gi), win.navigator.appVersion.match(/iphone/gi));
    v = win.devicePixelRatio;
    v = n ? v >= 3 ? 3 : v >= 2 ? 2 : 1 : 1, initial_scale = 1 / v
    }
    //???viewport??????????
    if (domEle.setAttribute("data-dpr", v), !viewport) {
    if (viewport = dom.createElement("meta"), viewport.setAttribute("name", "viewport"), viewport.setAttribute("content", "initial-scale=" + initial_scale + ", maximum-scale=" + initial_scale + ", minimum-scale=" + initial_scale + ", user-scalable=no"), domEle.firstElementChild) {
    domEle.firstElementChild.appendChild(viewport)
    } else {
    var m = dom.createElement("div");
    m.appendChild(viewport), dom.write(m.innerHTML)
    }
    }
    win.dpr = v;
    win.addEventListener("resize", function() {
    clearTimeout(timeCode), timeCode = setTimeout(resize, 300)
    }, false);
    win.addEventListener("pageshow", function(b) {
    b.persisted && (clearTimeout(timeCode), timeCode = setTimeout(resize, 300))
    }, false);

    "complete" === dom.readyState ? dom.body.style.fontSize = 12 * v + "px" : dom.addEventListener("DOMContentLoaded", function() {
    dom.body.style.fontSize = 16 * v + "px"
    }, false);

    resize();
    }(window);
  • 相关阅读:
    python eval() 进行条件匹配
    spring boot 学习
    JAVA基础
    在mac上进行JAVA开发
    移动端开发基础【8】页面生命周期
    数据挖掘【1】概述(引言)
    项目管理【26】 | 项目成本管理-规划成本管理
    项目管理【24】 | 项目进度管理-控制进度
    项目管理【25】 | 项目成本管理-成本管理概念
    操作系统【8】 Linux虚拟内存和物理内存
  • 原文地址:https://www.cnblogs.com/chengyalin/p/9115235.html
Copyright © 2011-2022 走看看