位置: IT常识 - 正文

vue 项目的屏幕自适应方案(vue display)

编辑:rootadmin
vue 项目的屏幕自适应方案 方案一:使用 scale-box 组件

推荐整理分享vue 项目的屏幕自适应方案(vue display),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue display,vue做大屏,vue大屏展示项目实例,vue全屏显示,vue全屏显示,vue大屏展示项目实例,vue大屏展示项目实例,vue 大屏显示,内容如对您有帮助,希望把文章链接给更多的朋友!

属性:

width 宽度 默认 1920height 高度 默认 1080bgc 背景颜色 默认 "transparent"delay自适应缩放防抖延迟时间(ms) 默认 100

vue2版本:vue2大屏适配缩放组件(vue2-scale-box - npm)

npm install vue2-scale-box

或者

yarn add vue2-scale-box

使用方法:

<template> <div> <scale-box :width="1920" :height="1080" bgc="transparent" :delay="100"> <router-view /> </scale-box> </div></template><script>import ScaleBox from "vue2-scale-box";export default { components: { ScaleBox },};</script><style lang="scss">body { margin: 0; padding: 0; background: url("@/assets/bg.jpg");}</style>

vue3版本:vue3大屏适配缩放组件(vue3-scale-box - npm)

npm install vue3-scale-box

或者

yarn add vue3-scale-boxvue 项目的屏幕自适应方案(vue display)

使用方法:

<template> <ScaleBox :width="1920" :height="1080" bgc="transparent" :delay="100"> <router-view /> </ScaleBox></template><script>import ScaleBox from "vue3-scale-box";</script><style lang="scss">body { margin: 0; padding: 0; background: url("@/assets/bg.jpg");}</style>方案二:设置设备像素比例(设备像素比)

在项目的 utils 下新建 devicePixelRatio.js 文件

class devicePixelRatio { /* 获取系统类型 */ getSystem() { const agent = navigator.userAgent.toLowerCase(); const isMac = /macintosh|mac os x/i.test(navigator.userAgent); if (isMac) return false; // 目前只针对 win 处理,其它系统暂无该情况,需要则继续在此添加即可 if (agent.indexOf("windows") >= 0) return true; } /* 监听方法兼容写法 */ addHandler(element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else if (element.attachEvent) { element.attachEvent("on" + type, handler); } else { element["on" + type] = handler; } } /* 校正浏览器缩放比例 */ correct() { // 页面devicePixelRatio(设备像素比例)变化后,计算页面body标签zoom修改其大小,来抵消devicePixelRatio带来的变化 document.getElementsByTagName("body")[0].style.zoom = 1 / window.devicePixelRatio; } /* 监听页面缩放 */ watch() { const that = this; // 注意: 这个方法是解决全局有两个window.resize that.addHandler(window, "resize", function () { that.correct(); // 重新校正浏览器缩放比例 }); } /* 初始化页面比例 */ init() { const that = this; // 判断设备,只在 win 系统下校正浏览器缩放比例 if (that.getSystem()) { that.correct(); // 校正浏览器缩放比例 that.watch(); // 监听页面缩放 } }}export default devicePixelRatio;

在 App.vue 中引入并使用即可

<template> <div> <router-view /> </div></template><script>import devPixelRatio from "@/utils/devicePixelRatio.js";export default { created() { new devPixelRatio().init(); // 初始化页面比例 },};</script><style lang="scss">body { margin: 0; padding: 0;}</style>方案三:通过 JS 设置 zoom 属性调整缩放比例

在项目的 utils 下新建 monitorZoom.js 文件

export const monitorZoom = () => { let ratio = 0, screen = window.screen, ua = navigator.userAgent.toLowerCase(); if (window.devicePixelRatio !== undefined) { ratio = window.devicePixelRatio; } else if (~ua.indexOf("msie")) { if (screen.deviceXDPI && screen.logicalXDPI) { ratio = screen.deviceXDPI / screen.logicalXDPI; } } else if ( window.outerWidth !== undefined && window.innerWidth !== undefined ) { ratio = window.outerWidth / window.innerWidth; } if (ratio) { ratio = Math.round(ratio * 100); } return ratio;};

在 main.js 中引入并使用即可

import { monitorZoom } from "@/utils/monitorZoom.js";const m = monitorZoom();if (window.screen.width * window.devicePixelRatio >= 3840) { document.body.style.zoom = 100 / (Number(m) / 2); // 屏幕为 4k 时} else { document.body.style.zoom = 100 / Number(m);}

完整代码

import Vue from "vue";import App from "./App.vue";import router from "./router";/* 调整缩放比例 start */import { monitorZoom } from "@/utils/monitorZoom.js";const m = monitorZoom();if (window.screen.width * window.devicePixelRatio >= 3840) { document.body.style.zoom = 100 / (Number(m) / 2); // 屏幕为 4k 时} else { document.body.style.zoom = 100 / Number(m);}/* 调整缩放比例 end */Vue.config.productionTip = false;new Vue({ router, render: (h) => h(App),}).$mount("#app");获取屏幕的分辨率

获取屏幕的宽:

window.screen.width * window.devicePixelRatio

获取屏幕的高:

window.screen.height * window.devicePixelRatio移动端适配(使用 postcss-px-to-viewport 插件)

官网:https://github.com/evrone/postcss-px-to-viewport

npm install postcss-px-to-viewport --save-dev

或者

yarn add -D postcss-px-to-viewport

配置适配插件的参数(在项目根目录创建 .postcssrc.js 文件[与 src 目录平级])粘贴以下代码即可

module.exports = { plugins: { autoprefixer: {}, // 用来给不同的浏览器自动添加相应前缀,如-webkit-,-moz-等等 "postcss-px-to-viewport": { unitToConvert: "px", // 需要转换的单位,默认为"px" viewportWidth: 390, // UI设计稿的宽度 unitPrecision: 6, // 转换后的精度,即小数点位数 propList: ["*"], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换 viewportUnit: "vw", // 指定需要转换成的视窗单位,默认vw fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位,默认vw selectorBlackList: ["wrap"], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位 minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换 mediaQuery: false, // 是否在媒体查询的css代码中也进行转换,默认false replace: true, // 是否直接更换属性值,而不添加备用属性 exclude: [/node_modules/], // 忽略某些文件夹下的文件或特定文件,用正则做目录名匹配,例如 'node_modules' 下的文件 landscape: false, // 是否处理横屏情况 landscapeUnit: "vw", // 横屏时使用的视窗单位,默认vw landscapeWidth: 2048 // 横屏时使用的视口宽度 } }};
本文链接地址:https://www.jiuchutong.com/zhishi/298547.html 转载请保留说明!

上一篇:Vue3父子组件间传参通信(vue父组件子组件)

下一篇:Vue3 中 axios 的安装及使用(vue3+antd)

  • 苹果13有通话录音功能吗(苹果13有通话录音机功能吗)

    苹果13有通话录音功能吗(苹果13有通话录音机功能吗)

  • 苹果12怎么设置每次拨号选择(苹果12怎么设置电池电量数字)

    苹果12怎么设置每次拨号选择(苹果12怎么设置电池电量数字)

  • 华为手机激活了能退货吗(华为手机激活了想退怎么办)

    华为手机激活了能退货吗(华为手机激活了想退怎么办)

  • 华为荣耀20pro手机怎么卸载手机桌面的东西(华为荣耀20pro手机参数配置)

    华为荣耀20pro手机怎么卸载手机桌面的东西(华为荣耀20pro手机参数配置)

  • 电脑卡住怎么重启(电脑卡住怎么重装系统)

    电脑卡住怎么重启(电脑卡住怎么重装系统)

  • 手机屏幕里进水了有水印怎么办(手机屏幕里进水了有水印还能正常使用吗)

    手机屏幕里进水了有水印怎么办(手机屏幕里进水了有水印还能正常使用吗)

  • 荣耀x10有没有红外(荣耀X10有没有红外功能)

    荣耀x10有没有红外(荣耀X10有没有红外功能)

  • 苹果无线局域网地址不适用(苹果无线局域网按钮灰色)

    苹果无线局域网地址不适用(苹果无线局域网按钮灰色)

  • 离线发送是什么意思(离线发送是什么意思呀)

    离线发送是什么意思(离线发送是什么意思呀)

  • 压缩包默认密码是什么(压缩包默认密码怎么设置)

    压缩包默认密码是什么(压缩包默认密码怎么设置)

  • 如何彻底禁用手机内置浏览器(如何彻底禁用手机摄像头)

    如何彻底禁用手机内置浏览器(如何彻底禁用手机摄像头)

  • 苹果笔记本i5和i7区别(苹果笔记本i5和i7的区别)

    苹果笔记本i5和i7区别(苹果笔记本i5和i7的区别)

  • qq达人最多能补几天(qq达人一天能补几次)

    qq达人最多能补几天(qq达人一天能补几次)

  • 联通虚商是什么意思啊(联通虚商号码安全吗)

    联通虚商是什么意思啊(联通虚商号码安全吗)

  • 手机卡补了老卡还能用吗(手机补卡后旧卡怎么办)

    手机卡补了老卡还能用吗(手机补卡后旧卡怎么办)

  • 全家福怎么扫出来的(2021全家福怎么扫)

    全家福怎么扫出来的(2021全家福怎么扫)

  • 电脑开机一会就黑屏是什么原因(电脑开机一会就关机了怎么回事)

    电脑开机一会就黑屏是什么原因(电脑开机一会就关机了怎么回事)

  • 蓝牙的缩写英文是什么(蓝牙英文缩写是什么)

    蓝牙的缩写英文是什么(蓝牙英文缩写是什么)

  • win10开机启动项怎么设置(win10开机启动项文件夹路径)

    win10开机启动项怎么设置(win10开机启动项文件夹路径)

  • wps怎么把文字变成表格(wps怎么把文字变成图片)

    wps怎么把文字变成表格(wps怎么把文字变成图片)

  • vivo打电话视频通话怎么弄(vivo打电话视频彩铃怎么取消)

    vivo打电话视频通话怎么弄(vivo打电话视频彩铃怎么取消)

  • iphone11是双卡双待怎么插卡(iphone11是双卡双待怎么设置主副号)

    iphone11是双卡双待怎么插卡(iphone11是双卡双待怎么设置主副号)

  • 手机图片电脑怎么打印(手机图片电脑怎么找到文件夹)

    手机图片电脑怎么打印(手机图片电脑怎么找到文件夹)

  • word中竖线符号怎么打(word中竖线符号怎么去掉)

    word中竖线符号怎么打(word中竖线符号怎么去掉)

  • ca证书怎么删除(怎么把ca证书删掉)

    ca证书怎么删除(怎么把ca证书删掉)

  • 苹果手机可以投屏到苹果电脑吗(苹果手机可以投屏ipad吗)

    苹果手机可以投屏到苹果电脑吗(苹果手机可以投屏ipad吗)

  • 如何学习it课程(如何学好it)

    如何学习it课程(如何学好it)

  • word护眼模式怎么取消(WORD护眼模式怎么开)

    word护眼模式怎么取消(WORD护眼模式怎么开)

  • 在Mac OS X中快速安装TEX的一种新的方法(macos快捷键一览)

    在Mac OS X中快速安装TEX的一种新的方法(macos快捷键一览)

  • 东内格罗斯省沿海的鹦嘴鱼,菲律宾 (© Tim Fitzharris/Minden Pictures)(内格罗斯岛)

    东内格罗斯省沿海的鹦嘴鱼,菲律宾 (© Tim Fitzharris/Minden Pictures)(内格罗斯岛)

  • 织梦kindeditor编辑器插入mp4视频不显示及不过滤video的方法(织梦cms怎么样)

    织梦kindeditor编辑器插入mp4视频不显示及不过滤video的方法(织梦cms怎么样)

  • 投资者投入固定资产的合同或协议约定
  • 留抵税额是什么意思啊
  • 邮票可以抵个税吗
  • 投资收益科目在贷方
  • 收取租车押金怎么做会计分录
  • 投标保证金退回规定
  • 小微企业第一季度不符合条件怎么处理
  • 弥补以前年度亏损会计分录
  • 发出商品是用进货吗
  • 受托开发软件产品免征增值税
  • 营改增后卖房交的增值税
  • 地税纳税人编码是什么
  • 其他权益工具包含
  • 文化事业建设费税率
  • 增值税发票二联折叠票样式
  • 分公司用总公司盖章说明
  • 定额发票存根要盖章吗
  • internet笔记
  • iphonexs如何强制关机重启
  • wordpress导入主题教程
  • Windows10开始菜单透明
  • 购入已提完折旧的固定资产怎么入账
  • 应缴纳个人所得税的是托儿补助费
  • 营改增之前的收入开什么票
  • 呆账损失是什么意思
  • 开立异地银行结息通知
  • 企业规模扩大后更易于管理吗
  • 退回的企业所得税怎么做账
  • php发送短信
  • 自然人税收管理系统扣缴客户端怎么操作
  • 新准则土地使用权计入固定资产还是无形资产
  • php魔术常量有多少
  • windowsserver2019产品密钥
  • python jsdom
  • 公允价值变动损益
  • 修的公路是否上固定资产
  • 开票资料电话写错了有关系吗
  • cms静态页面生成原理
  • 在mysql中子查询是
  • 二季度盈利三季度亏损
  • 白条怎么收拾
  • 投资性房地产如何折旧
  • 工程结算科目
  • mysql默认值怎么设置
  • 其他应收款主要是什么
  • 可明确区分的商品什么意思
  • 抵账协议上可以签字吗
  • 招待客户住宿属于什么费用
  • 个税基数和社保有关系吗
  • 固定资产报废由谁审批
  • 对于资产负债表日后的非调整事项
  • 房租费计提如何入账
  • 会计账簿的扉页只需填列账簿启用日期和经管人员一览表
  • 个人如何进行股票交易
  • navicat连接教程
  • mysql三种安装方式
  • windows xp sp4 下载 windows xp sp4补丁包(非官方)
  • github centos
  • windows怎么查
  • win7关闭混合睡眠
  • win8命令提示符管理员怎么打开
  • 苹果mac有啥用
  • ie10怎么设置ie8兼容模式
  • mac系统快速入门
  • reminder.exe - reminder是什么进程 有什么用
  • linux cr3
  • Linux利用sftp命令传输文件(极少数人知道的方法)
  • win10开机图标就变乱
  • windows8.1控制面板
  • cocos2dx官方教程
  • unity3d读取gis数据
  • shell脚本自动化
  • bat文件指令
  • jquery怎么判断复选框选中
  • linux 使用技巧
  • unity3d spine
  • js校验姓名
  • python装饰器初探(推荐)
  • javascript整数类型
  • 发票 报销流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设