用rem布局,在安卓app中浏览页面样式乱了,好像是rem没生效,有啥解决办法?

发布于 2022-09-04 08:32:31 字数 968 浏览 30 评论 0

function rem(win, doc){
            function setFontSize() {
                var winWidth =  window.innerWidth;
                var size = (winWidth / 640) * 100;
                doc.documentElement.style.fontSize = (size < 100 ? size : 100) + 'px' ;
            }

            var evt = 'onorientationchange' in win ? 'orientationchange' : 'resize';

            var timer = null;

            win.addEventListener(evt, function () {
                clearTimeout(timer);

                timer = setTimeout(setFontSize, 300);
            }, false);

            win.addEventListener("pageshow", function(e) {
                if (e.persisted) {
                    clearTimeout(timer);

                    timer = setTimeout(setFontSize, 300);
                }
            }, false);

            setFontSize();

            console.log('page loaded')
        };
        window.onload = rem(window, document);

目前这样写还是有问题,rem的布局没生效

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

聆听风音 2022-09-11 08:32:31

$(window).on("resize",function(){
$("html").css("fontSize",$(window).width()/6.4);
}).resize();

站稳脚跟 2022-09-11 08:32:31
(function(doc, win) {
        var docEl = doc.documentElement,
            resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
            recalc = function() {
                var clientWidth = docEl.clientWidth;
                if (!clientWidth) return;
                docEl.style.fontSize = (clientWidth >= 640 ? 100 : clientWidth / 6.4) + 'px';
            };
        if (!doc.addEventListener) return;
        win.addEventListener(resizeEvt, recalc, false);
        doc.addEventListener('DOMContentLoaded', recalc, false);
    })(document, window);

这样写,1rem=100px

孤星 2022-09-11 08:32:31

不生效是什么效果?截个图贴上来吧

心意如水 2022-09-11 08:32:31

字体大小最小是12px,所以

var size = (winWidth / 640) * 100;
doc.documentElement.style.fontSize = (size < 100 ? size : 100) + 'px' ;

你的这两句代码就有问题了!建议你size值改到12及以上

我一般用的是这个

        (function (doc, win) {
          var docEl = doc.documentElement,
            resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
            recalc = function () {
              var clientWidth = docEl.clientWidth;
              if (!clientWidth) return;
              docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
            };

          if (!doc.addEventListener) return;
          win.addEventListener(resizeEvt, recalc, false);
          doc.addEventListener('DOMContentLoaded', recalc, false);
        })(document, window);
魔法少女 2022-09-11 08:32:31

是用安卓原生浏览器吗?是的话就坑了。。。。
clipboard.png

冷情 2022-09-11 08:32:31

我好像也遇到了这个问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文