加急!!!!H5正屏切换,适配华为

  1. 做整屏切换的时候,出现适配问题,

clipboard.png
是因为华为 有虚拟键这个问题

  1. 我使用的是rem布局
 (function (win, lib) {
            var doc = win.document;
            var docEl = doc.documentElement;
            var devicePixelRatio = win.devicePixelRatio;
            var dpr = 1;
            var scale = 1;
            function setViewport() {
                dpr = 1;
                win.devicePixelRatioValue = dpr;
                scale = 1 / dpr;
                var metaEl = doc.createElement("meta");
                metaEl.setAttribute("name", "viewport");
                metaEl.setAttribute("content", "initial-scale=" + scale + ", maximum-scale=" + scale + ", minimum-scale=" + scale + ", user-scalable=no");
                if (docEl.firstElementChild) {
                    docEl.firstElementChild.appendChild(metaEl)
                } else {
                    var wrap = doc.createElement("div");
                    wrap.appendChild(metaEl);
                    doc.write(wrap.innerHTML)
                }
            }
            setViewport();
            var newBase = 100;
            function setRem() {
                var visualView = Math.min(docEl.getBoundingClientRect().width, lib.maxWidth);
                newBase = 100 * visualView / lib.desinWidth;
                docEl.style.fontSize = newBase + "px"
            }
            var tid;
            lib.desinWidth = 640;
            lib.baseFont = 18;
            lib.maxWidth = 540;
            lib.init = function () {
                win.addEventListener("resize", function () {
                    clearTimeout(tid);
                    tid = setTimeout(setRem, 300)
                }, false);
                win.addEventListener("pageshow", function (e) {
                    if (e.persisted) {
                        clearTimeout(tid);
                        tid = setTimeout(setRem, 300)
                    }
                }, false);
                if (doc.readyState === "complete") {
                    doc.body.style.fontSize = lib.baseFont * dpr + "px"
                } else {
                    doc.addEventListener("DOMContentLoaded", function (e) {
                        doc.body.style.fontSize = lib.baseFont * dpr + "px"
                    }, false)
                }
                setRem();
                docEl.setAttribute("data-dpr", dpr)
            }
        })(window, window["adaptive"] || (window["adaptive"] = {}));
        window['adaptive'].desinWidth = 750;// 设计图宽度
        window['adaptive'].baseFont = 12;// 没有缩放时的字体大小
        window['adaptive'].maxWidth = 540;// 页面最大宽度 默认540
        window['adaptive'].init();// 调用初始化方法
  1. 其他主流手机都没有问题
    正常是应该是

clipboard.png

  1. 在线求解,加急
阅读 3.7k
4 个回答

缩小 或者紧凑点?

怎么你使用js的方式来使用rem?不是使用CSS根字体来设置?奇怪。

你这个是背景图吧,感觉和rem适配没关系呀

请问这种情况解决了么? 我也遇到同样的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题