javascript - 移动端使用js控制rem大小
大家讲道理
大家讲道理 2017-04-11 12:55:00
[JavaScript讨论组]

如图,本人在写移动端页面时用js控制rem大小。现在出现的问题是,app页面打开的一瞬间会有一秒钟的闪动,就是页面刚加载出来时候页面的内容会很大,一秒之后又恢复正常,尝试了很多办法还是没有解决。希望有大神能帮我指导

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(5)
ringa_lee

两步:

  1. 代码放进 <head>

  2. 不要等待 DOMContentLoaded 事件, 直接执行

如下代码:

!function() {
    var html = document.documentElement;
    var setFontSize = function() {
        var width = html.offsetWidth;
        if(width <= 640) {
            html.style.fontSize = width / 6.4+ 'px';
        } else {
            html.style.fontSize = 100 + 'px';
        }
    };
    var timer;
    var setDelay = function() {
        return clearTimeout(timer), (timer = setTimeout(setFontSize, 150));
    }
    window.addEventListener('pageshow', function(evt) {
        return evt.persisted && setDelay();
    });
    window.addEventListener('resize', setDelay);
    setFontSize();
}();
巴扎黑

除了在head中执行JS脚本:
$("html").css("font-size", 0.04 * $(window).width());

还可以直接用vw(viewport width)这个单位:

html {
    font-size: 4vw;
}

假设宽为360px,则4vw等于4%*360=14.4px,也就是html根字体大小为14.4px,其他长度单位是这个大小的倍数,1rem就是1倍,2rem就是2倍.

巴扎黑

可以参考 这个库

大家讲道理

还不如用css媒体查询解决,还有不要放在domready事件里,直接执行。话说二楼刚开年就熬夜加班真可怜

ringa_lee
    (function (doc, win) {
        var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function () {
            var clientWidth = docEl.clientWidth;
            if (clientWidth > 640){
                docEl.style.fontSize = 100 + 'px';
            }else {
                docEl.style.fontSize = 100 * (clientWidth / 640) + 'px';
            }

        };
        if (!doc.addEventListener) return;
        win.addEventListener(resizeEvt, recalc, false);
        doc.addEventListener('DOMContentLoaded', recalc, false);
    })(document, window);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号