首页 > 其他分享 >vue项目使用rem布局刷新页面瞬间元素尺寸由小变大,页面闪现错乱样式

vue项目使用rem布局刷新页面瞬间元素尺寸由小变大,页面闪现错乱样式

时间:2023-02-20 18:36:06浏览次数:38  
标签:vue 样式 setRem 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,这时候就可以看到正常的页面了。

标签:vue,样式,setRem,rem,页面,加载
From: https://www.cnblogs.com/liyunxi/p/17138467.html

相关文章

  • 【Vue】vue项目目录介绍 es6的导入导出语法 vue项目开发规范 Vue项目编写步骤
    目录昨日回顾今日内容0vue-cli创建项目node.js环境创建vue-cli项目1vue项目目录介绍node_modulesindex.htmlapp.vuepackage.jsonpackage-lock.json2es6的导入导出语法ma......
  • vue---day06( )
    上节回顾#1组件使用 -局部-全局#2组件间通信 -一旦组件化开发----》组件间通信-父传子:自定义属性-子传父:自定义事件-ref属性: ......
  • vue实现预览pdf功能
    vue页面中的一部分实现预览pdf功能一、全屏预览模式先说直接全屏预览的,直接axios获取到数据,将流转为二进制文件,可以window.open(后端返回文件流,前端把流转成url,在使用w......
  • Vue 06
    Vue06vue-cli创建项目在使用前端做项目的时候我们会使用到一个工具:vue-cli 1.创建出一个vue项目,单页面开发,组件化开发,把App.vue,ts,saas,less编译成能够在浏览器中......
  • vue2中的v-for
    数组更新检测变更方法Vue将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。这些被包裹过的方法包括:push()pop()shift()unshift()splice()sort()......
  • python之路73 vue框架 vue-cli创建项目、vue项目目录介绍、es6导入导出语法、登录功
    vue-cli创建项目前端做成项目---》使用工具(vue-cli),创建vue项目,单页面应用(spa),组件开发,把xx.vue,ts,saas,less---》编译---》在浏览器中执行vue-cli创建项目开发,在项......
  • Vue-cli项目搭建
    Vue-cli项目搭建VueCLI是一个基于Vue.js进行快速开发的完整系统。它依赖nodejs解释器环境,这个解释器是基于谷歌v8引擎编写的,能过在操作系统上执行js代码(原本js只能运......
  • vue-element-admin 给页面添加水印
     1:/src/utils/waterMark.js 创建文件,代码直接贴:'usestrict'constwatermark={}/****@param{要设置的水印的内容}str*@param{需要设置水印的容......
  • Remove Nth Node From End of List 删除链表倒数第N个节点
    RemoveNthNodeFromEndofListGivenalinkedlist,removethe nthForexample,Givenlinkedlist:1->2->3->4->5,andn=2.Afterremovingthesecondnode......
  • vue3 reactive值不更新
    即上一个随笔里面的form表单数据定义的问题之后,又出现了另一个问题。页面里面有一个数组:letruleForm=reactive([  {name:'123456'}])......