您现在的位置是:网站首页> 编程资料编程资料
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, // 横屏时使用的视口宽度 }, }, }; 以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关内容
- 结合el-upload组件实现大文件分片上传功能_vue.js_
- 基于JavaScript实现一个月饼音乐播放器_javascript技巧_
- 如何基于uni-app实现微信小程序一键登录与退出登录功能_javascript技巧_
- 页面中实现setInterval和setTimeout效果示例详解_javascript技巧_
- Vue中图片上传组件封装-antd的a-upload二次封装的实例_vue.js_
- antd项目实现彩蛋效果的详细代码_javascript技巧_
- vue运行项目时network显示unavailable的问题及解决_vue.js_
- 前端vue a链接下载文件失败的问题(未发现文件)_vue.js_
- React Hook父组件如何获取子组件的数据/函数_React_
- node 可读流与可写流的运用详解_node.js_
