vue项目使用px2remLoader插件将px转为rem之后加载瞬间尺寸由小变大,页面闪现错乱样式

vue项目使用px2remLoader插件,在index.html自定义设置font-size的大小,尤其是在首屏加载的时候,会出现页面各个元素尺寸由小变大的一个过程,很难看

刚开始一直在想是不是因为css文件过大,加载的时候先渲染了页面,然后css文件加载完之后样式才恢复正常,后来使用gzip压缩了打包的文件之后还是这样,(使用gzip打包可以减少打包文件体积,减少首屏渲染的时间,详见https://blog.csdn.net/mao871863224/article/details/111468986),还使用了v-cloak方法,并没有生效。转换思路,最后发现是px转rem的原因!

在index.html文件中自定义了px转rem的font-size的规则

<!DOCTYPE html>
<html lang="en">
	// 头部自己定义
	<head></head>
	// 一进来默认看不见
	/* 这一个样式****** */
	<body style="opacity: 0">   
		<div id="app"></div>
	</body>
	<script>
		setRem() {
			//这里自己定义px转rem的转换规则
			
			//在改变窗口大小或者加载完成之后所有的尺寸都已转变后执行下面这一句,把body的透明度设为1
			document.getElementsByTagName("body")[0].style.opacity = '1'   // ******
		}
		// 改变窗口大小时重新设置 rem
		window.onresize = function () {
		   setRem()
		}
		// 加载完成
		window.onload = function () {
			setRem()
		}
	</script>
</html>

以上,完美解决问题,原理就是样式错乱的时候透明度为0,让用户看不见,加载好了透明度为1,这时候就可以看到正常的页面了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值