解决移动端rem加载瞬间页面错乱的方法(放大或者缩小)
移动端布局有很多种,这里我们最常使用到rem+百分比的布局方式(高度/字体设置rem单位,宽度设置百分比)来处理屏幕兼容,这种方法在兼容上是比较不错的,可以使得字体以及整体适应各种大小的屏幕,可以解决ipad等比较大屏幕的适应兼容。然而发现一些问题。页面在加载未完成前会出现瞬间错乱的现象,虽然时间不算长,但是肉眼可见,必须解决(此处以750像素的设计图为例)——加载前后页面如下图所示:

可以清楚的看到,加载未完成前的一小会儿,页面会出现一瞬间的崩塌现象。一开始没怎么在意这个问题,后来发现这样的页面的确影响视觉,我们知道页面加载顺序通常是”从上往下”加载的,所以在内容区域,也就是body以及body包含的DOM还未被浏览器遍历之前,我们就应该将html的font-size计算好,所以我们应当把计算字体的js放在body之前。
1.在公共的css文件设置html的根字体为font-size:100px;这样问题就解决了。等到js计算出新的根字体大小就会把原来css定义的大小覆盖,这样就可以解决也页面打开时的瞬间崩塌现象了
<script type="text/javascript">
function resize() {
var htmlEle = document.documentElement;
var htmlWidth = window.innerWidth;
if(!htmlWidth) return;
if(htmlWidth >= 750){
htmlEle.style.fontSize = '100px';
}else{
htmlEle.style.fontSize = 100 * (htmlWidth / 750) + 'px';
}
resize();
</script>
2.进行body进行预先隐藏处理
这里为什么不用display?display设置none是直接移除元素,而visibility设置的hidden只是将元素隐藏,保留其原本的位置。
<body id="body" style="visibility:hidden;">
3.设置定时器setTimeout
定时器在加载方法1毫秒之后,对body进行visible,这1毫秒的时候基本是可以忽视。
<script type="text/javascript">
setTimeout(function(){
document.getElementById('body').style.visibility = 'visible';
},1);
</script>
解决移动端rem加载瞬间页面错乱的方法(放大或者缩小)的更多相关文章
- JqueryEasyUI 解决IE下加载时页面错乱的问题 分类: JavaScript JqueryEasyUI 2014-09-20 09:50 545人阅读 评论(1) 收藏
问题描述: 一直觉得jqueryeasyui在IE下的渲染效果不大好,尤其刚进入页面时的加载,页面会出现布局错乱,虽然是一闪而过,但是给用户的体验不好: 可以通过在页面onload时,增加一个遮罩层, ...
- 解决React通过ajax加载数据更新页面不加判断会报错的问题
通过AJAX加载数据是一个很普遍的场景.在React组件中如何通过AJAX请求来加载数据呢?首先,AJAX请求的源URL应该通过props传入:其次,最好在componentDidMount函数中加载 ...
- jquery中load()加载页面,刷新之后,加载的页面不显示的解决办法
<script language="javascript" type="text/javascript"> $(function(){ $(&quo ...
- Jquery load()加载GB2312页面时出现乱码的解决方法
问题描述:jquery的字符集是utf-8,load方法加载完GB2312编码静态页面后,出现中文乱码. a.php <script language="javascript" ...
- H5 缓存机制浅析 移动端 Web 加载性能优化
腾讯Bugly特约作者:贺辉超 1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性.离线存储(也可称为缓存机制)是其中一个非常重要的特性.H5 引入的离线存储, ...
- 使用Ajax.ActionLink时,点击对应的按钮会重新加载一个页面,而不是在当前页面的指定模块加载
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jQuery实现图片预加载提高页面加载速度和用户体验
我们在做网站的时候经常会遇到这样的问题:一个页面有大量的图片导致页面加载速度缓慢,经常会出现一个白页用户体验很不好.那么如何解决这个问题呢?首先我们会想到的是提高服务器性能,使用静态缓存等手段来加快图 ...
- jquery实现图片预加载提高页面加载速度
使用jquery实现图片预加载提高页面加载速度和用户体 我们在做网站的时候经常会遇到这样的问题:一个页面有大量的图片导致页面加载速度缓慢,经常会出现一个白页用户体验很不好.那么如何解决这个问题 呢?首 ...
- js刷新页面得重新加载和页面的刷新
1.reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当 ...
随机推荐
- JS代码简洁之道--函数
函数的参数越少越好 有一个准则是:如果你的函数参数超过两个,就应该改为对象传入. 这样做是合理的,因为当函数参数超过两个时,参数顺序开始变得难以记忆,而且容易出现一种很尴尬的情况:比如我只需要传入第三 ...
- 洛谷 P6136 【【模板】普通平衡树(数据加强版)】
爱死替罪羊树了 这种暴力的数据结构爱死了.什么?!你还不知道替罪羊树?那就看看这篇博客这篇博客吧.替罪羊树就是当不平衡时,拍扁重建,然后就平衡了.想切这道题,要先把普通平衡树那道题做了(这篇博客讲了的 ...
- mysql 主键自增设置,插入数据就不必再设置了。
(完)
- 开放api接口参数 app_id, app_key, app_secret 的理解
看到知乎上一个回答很形象: app_id, app_key, app_secret:我的身份证,银行卡号,银行卡密码 (完)
- 命令 关闭SElinux
# sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
- Java 从入门到进阶之路(二十九)
在之前的文章我们已经可以对本地对文件和目录进行新建和删除等操作,接下来我们来对文件内对具体内容进行操作. 如下代码,我们实现了一个基本的文件写入: /** * java.io.RandomAccess ...
- JVM源码分析之JVM启动流程
原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 “365篇原创计划”第十四篇. 今天呢!灯塔君跟大家讲: JVM源码分析之JVM启动流程 前言: 执行Java类的main方法,程序就能运 ...
- css实现内容渐变隐藏效果,手机网页版知乎内容隐藏效果的实现
看到一个需求,如下图,知乎手机网页版的一个视觉效果,对内容很长的部分有一个渐变的隐藏的效果,个人觉得这个设计还是很好的,符合手机大小的应用场景,没有一下子显示完全,可以很快的滑倒页面底部,一定程度上减 ...
- 从零开始学Electron笔记(一)
前端技术在最近几年迅猛发展,在任何开发领域我们都能看到前端的身影,从PC端到手机端,从APP到小程序,似乎前端已经无所不能,这就要求我们需要不断地去学习来提升自己!前段时间尤大通过直播介绍了一下Vue ...
- 复杂链表的复制(剑指offer-25)
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点.(注意,输出结果中请不要返回 ...