位置: 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)

  • vue路由模式(vue路由相关面试题)

    vue路由模式(vue路由相关面试题)

  • 拼多多商家退货地址在哪里设置(拼多多商家退货地址更改)

    拼多多商家退货地址在哪里设置(拼多多商家退货地址更改)

  • vivo x27怎么设置视频通话美颜(vivox27怎么设置返回键在桌面)

    vivo x27怎么设置视频通话美颜(vivox27怎么设置返回键在桌面)

  • 腾讯会议可不可以匿名投票吗(腾讯会议可不可以手机电脑双开)

    腾讯会议可不可以匿名投票吗(腾讯会议可不可以手机电脑双开)

  • 淘宝618从什么时候开始(淘宝618什么时候开始的2023)

    淘宝618从什么时候开始(淘宝618什么时候开始的2023)

  • y7000黑屏后唤不醒(y7000黑屏了怎么处理)

    y7000黑屏后唤不醒(y7000黑屏了怎么处理)

  • 淘宝评价怎么删除(淘宝评价怎么删除不了)

    淘宝评价怎么删除(淘宝评价怎么删除不了)

  • 苹果手机分辨率在哪调(苹果手机分辨率怎么调)

    苹果手机分辨率在哪调(苹果手机分辨率怎么调)

  • 电脑上大小写转换是哪一个键(电脑上大小写转换快捷键)

    电脑上大小写转换是哪一个键(电脑上大小写转换快捷键)

  • 手机不用了怎么处理(手机不用了怎么清理数据)

    手机不用了怎么处理(手机不用了怎么清理数据)

  • 苹果手机能下载应用宝吗?(苹果手机能下载微信分身吗)

    苹果手机能下载应用宝吗?(苹果手机能下载微信分身吗)

  • 趣步怎么解绑实名认证(趣步怎么注销)

    趣步怎么解绑实名认证(趣步怎么注销)

  • 华为nova4超广角怎么使用(华为nova4广角摄像头是哪个)

    华为nova4超广角怎么使用(华为nova4广角摄像头是哪个)

  • 抖音怎么上传高清视频(抖音怎么上传高清画质)

    抖音怎么上传高清视频(抖音怎么上传高清画质)

  • iphone6是几核(苹果6是几核处理器)

    iphone6是几核(苹果6是几核处理器)

  • 去哪儿怎么取消优惠套餐(去哪儿怎么取消退票保障)

    去哪儿怎么取消优惠套餐(去哪儿怎么取消退票保障)

  • 什么叫智慧识屏(什么是智慧识屏)

    什么叫智慧识屏(什么是智慧识屏)

  • qq苹果在线怎么去掉(qq苹果在线怎么弄)

    qq苹果在线怎么去掉(qq苹果在线怎么弄)

  • 故事锁屏为啥卸载不了(故事锁屏是什么意思)

    故事锁屏为啥卸载不了(故事锁屏是什么意思)

  • 小米9gps信号不稳定(小米9gps信号弱怎么处理)

    小米9gps信号不稳定(小米9gps信号弱怎么处理)

  • 电话手表充不进电怎么办(电话手表充不进电怎么办小天才)

    电话手表充不进电怎么办(电话手表充不进电怎么办小天才)

  • 小米9有无线充电吗(小米9有无线充电功能吗怎么用)

    小米9有无线充电吗(小米9有无线充电功能吗怎么用)

  • mac底部菜单栏不见了(mac底部菜单栏不见了快捷键)

    mac底部菜单栏不见了(mac底部菜单栏不见了快捷键)

  • mhotkey.exe是什么进程 有什么作用 mhotkey进程查询(onekey.exe是什么)

    mhotkey.exe是什么进程 有什么作用 mhotkey进程查询(onekey.exe是什么)

  • linux系统怎么快速切换文本模式和X环境?(linux小技巧)

    linux系统怎么快速切换文本模式和X环境?(linux小技巧)

  • 前端基础:HTML(前端基础知识总结)

    前端基础:HTML(前端基础知识总结)

  • 织梦Dedecms自动摘要字节限制(将织梦dedecms转换到wordpress)

    织梦Dedecms自动摘要字节限制(将织梦dedecms转换到wordpress)

  • 计提本月附加税会计分录
  • 简易计税方法的销售额不包括其应纳税额
  • 新车车船税怎么交
  • 企业拆迁补偿金的税务处理
  • 如何证明自己是低保户
  • 所得税可以预交吗现在
  • 资产负债表从哪里打出来的
  • 附加税减免吗
  • 预提利息收入纳税调整
  • 农副产品收购发票税率是多少
  • 政府无偿划拨土地涉及的税费
  • 销货方违规作废增值税专用发票怎么处理
  • 政府收回土地使用权
  • 已入账未抵扣退回发票
  • 无形资产 减值
  • 特许权使用费所得包括
  • 税号开错了
  • 股票红利税如何征收
  • 代扣代缴个人所得税税率表
  • 税收筹划的概念和步骤
  • 电子税务局里的利润表,本月金额是填累计数吗
  • 如何理解结转资金与结余资金的区别
  • 列入工资的补贴是什么
  • 幼儿园开发成本
  • 持有至到期投资减值准备
  • linux查杀webshell
  • 年末应计提坏账准备为什么是负数
  • 微信收款会计分录,然后提现有手续费
  • 红字专用发票信息表
  • 溢价购入债权投资是为啥
  • 车间租金计入什么会计科目
  • 主板BIOS无法更改显存
  • 销售商品售后回购
  • php两个等号和三个的区别
  • php 替换
  • CLIP(Contrastive Language-Image Pre-Training)简介
  • nerf新手入门
  • lvm部署的命令
  • 美国人用什么英语词典
  • 权益法下股权投资转让
  • 一个简单的web项目名称
  • ubuntu16安装教程
  • 个人所得税专项扣除2023最新政策
  • 股东的投资款怎么收回
  • 主营业务成本的借贷方向
  • 咨询费收入成本怎么算
  • 员工借款还款怎么做账
  • 对供应商的罚款需要开票吗
  • 银行扣的账户管理费属于什么科目
  • 长期待摊费用包括增值税吗
  • 加计抵减四项服务是什么?
  • 企业向员工收取费用
  • 行政单位固定资产标准
  • 银行汇票如何兑现金
  • 简单介绍春节的风俗
  • oracle序列修改初始值
  • Mysql中FIND_IN_SET()和IN区别简析
  • mysql5.7.31安装
  • xp系统怎么连接电脑
  • 如何更改mac图标
  • 东芝笔记本图片及型号
  • ubuntu设置共享文件夹命令mount
  • 苹果MAC电脑如何设置开机密码
  • linux 删除 用户
  • win8 应用商店
  • 搜索超级模式
  • win10正式版激活码
  • 简述dom的组成
  • Cocos2dx 3.2 + vs2012 + win7 改变面黑色背景的大小
  • 举例说明什么是判断
  • python的模块和包
  • mac打开多个窗口
  • 用python写爬虫
  • a+bpython
  • android开发电视app教程
  • jquery怎么实现分页功能
  • 税务系统会议费管理办法
  • 国税公告2016年14解读
  • 镇江市税务局官网
  • 车辆购置税查询官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设