您现在的位置是:网站首页> 编程资料编程资料

Vue项目如何改变屏幕尺寸重新刷新页面-计算页面尺寸_vue.js_

2023-05-24 468人已围观

简介 Vue项目如何改变屏幕尺寸重新刷新页面-计算页面尺寸_vue.js_

改变屏幕尺寸重新刷新页面-计算页面尺寸

效果

在app.vue中设置

方式一

多次使用window.onresize,会造成其他的失效

方式二

尺寸的自适应 大屏自适应

我在一些大屏的项目中,碰见自己电脑写好的样式,但是在大屏中出现了变形。

通过 postcss-px2rem 插件,实现项目的自适应

使用:

** 1、安装包**

npm install postcss-px2rem px2rem-loader --save

2、文件创建

在src目录下创建一个util的工具文件夹,然后创建一个js文件,这里我叫pxtorem.js,文件中写上一下代码

// rem等比适配配置文件 // 基准大小 const baseSize = 16 // 设置 rem 函数 function setRem () { // 当前页面宽度相对于 1920宽的缩放比例,可根据自己需要修改。 const scale = document.documentElement.clientWidth / 1920 // 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整) document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px' } // 初始化 setRem() // 改变窗口大小时重新设置 rem window.onresize = function () { setRem() } 

3、在main.js文件中引入刚刚创建好的文件

import './util/pxtorem'

4、在vue.config.js文件中配置

如果项目中没有这个文件,可以自己手动在根目录下创建一下

// 引入等比适配插件 const px2rem = require('postcss-px2rem') // 配置基本大小 const postcss = px2rem({   // 基准大小 baseSize,需要和rem.js中相同   remUnit: 16 }) // 使用等比适配插件 module.exports = {   lintOnSave: true,   css: {     loaderOptions: {       postcss: {         plugins: [           postcss         ]       }     }   } }

通过transform,可用于echarts的项目中

ps:echart中的适应,你也可以用echarts自带的resize,然后对内部的文字字体大小设置一个值,进行变化 

通过 postcss-px-to-viewport 插件,实现项目的自适应

文档

和vue.config.js 文件同级,建一个 postcss.config.js 的文件

module.exports = { plugins: { 'postcss-px-to-viewport': { unitToConvert: 'px', // 需要转换的单位,默认为"px" viewportWidth: 1920, // 设计稿的视口宽度 unitPrecision: 5, // 单位转换后保留的精度 propList: ['*'], // 能转化为vw的属性列表 viewportUnit: 'vw', // 希望使用的视口单位 fontViewportUnit: 'vw', // 字体使用的视口单位 selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。 minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换 mediaQuery: false, // 媒体查询里的单位是否需要转换单位 replace: true, // 是否直接更换属性值,而不添加备用属性 exclude: [/node_modules/, /LargeScreen/], // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件,数组中写正则 include: undefined, // 如果设置了include,那将只有匹配到的文件才会被转换 landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape) landscapeUnit: 'vw', // 横屏时使用的单位 landscapeWidth: 1920, // 横屏时使用的视口宽度 }, }, }; 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

-六神源码网