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

  • 大王卡申请了怎么退订(大王卡申请了怎么查订单)

    大王卡申请了怎么退订(大王卡申请了怎么查订单)

  • 网站推广的常用办法(网站推广的方法有哪几种)

    网站推广的常用办法(网站推广的方法有哪几种)

  • 如何从钉钉文件发送到QQ(如何从钉钉文件导出)

    如何从钉钉文件发送到QQ(如何从钉钉文件导出)

  • 手机屏幕上出现电话HD(手机屏幕上出现房子图标)

    手机屏幕上出现电话HD(手机屏幕上出现房子图标)

  • svip能恢复大火天数吗(svip恢复火花能恢复天数吗)

    svip能恢复大火天数吗(svip恢复火花能恢复天数吗)

  • 快手提交订单为什么显示灰色(快手提交订单为空怎么办)

    快手提交订单为什么显示灰色(快手提交订单为空怎么办)

  • 华为mate30要不要贴钢化膜

    华为mate30要不要贴钢化膜

  • qq文件下载慢怎么办(qq文件下载速度慢)

    qq文件下载慢怎么办(qq文件下载速度慢)

  • 智行抢不到票会退款吗(智行抢不到票会退专人抢吗)

    智行抢不到票会退款吗(智行抢不到票会退专人抢吗)

  • 两个显卡可以同时用吗(两个显卡能不能串联)

    两个显卡可以同时用吗(两个显卡能不能串联)

  • 手机充电器功率多少瓦(手机充电器功率不一样可以混用吗)

    手机充电器功率多少瓦(手机充电器功率不一样可以混用吗)

  • word文档中怎么让图片居中(word文档中怎么删除多余的页面)

    word文档中怎么让图片居中(word文档中怎么删除多余的页面)

  • 怎么把hd关掉(hd是什么意思,怎么关闭)

    怎么把hd关掉(hd是什么意思,怎么关闭)

  • 火山小视频和抖音是一家吗(火山小视频和抖音那个先出来)

    火山小视频和抖音是一家吗(火山小视频和抖音那个先出来)

  • 驱动日期代表什么意思(驱动程序的日期是电脑的出厂日期吗)

    驱动日期代表什么意思(驱动程序的日期是电脑的出厂日期吗)

  • 怎样在手机图片上画圈(怎样在手机图片上做标记打圈)

    怎样在手机图片上画圈(怎样在手机图片上做标记打圈)

  • 手机outlook怎么用(手机outlook怎么换头像)

    手机outlook怎么用(手机outlook怎么换头像)

  • 不停有国外电话怎么办(总有国外电话打进来怎么回事)

    不停有国外电话怎么办(总有国外电话打进来怎么回事)

  • 台式机怎么连接wifi(台式机怎么连接蓝牙耳机)

    台式机怎么连接wifi(台式机怎么连接蓝牙耳机)

  • 苹果雷雳端口是什么(苹果雷厉3端口)

    苹果雷雳端口是什么(苹果雷厉3端口)

  • Autorun.inf是什么文件?Autorun.inf果真就是病毒吗?(autotun.inf)

    Autorun.inf是什么文件?Autorun.inf果真就是病毒吗?(autotun.inf)

  • 苹果14换接口吗详细介绍(苹果14数据线)

    苹果14换接口吗详细介绍(苹果14数据线)

  • H5页面跳转微信小程序时:wx.miniProgram.navigateTo 报错 ‘wx‘ is not defined no-undef(h5跳转h5)

    H5页面跳转微信小程序时:wx.miniProgram.navigateTo 报错 ‘wx‘ is not defined no-undef(h5跳转h5)

  • 已缴纳车船税的车船在同一年度
  • 出口退税是先交税后退税吗
  • 装修行业小规模纳税人增值税专票
  • 固定资产补提之前月度折旧怎么调整
  • 长期挂账的应付账款怎么处理
  • 应缴纳企业所得税税额怎么算
  • 丢失发票联和抵扣联
  • 生产过程中报废怎么核算成本
  • 稿酬所得是否需要按照累计预扣税率
  • 公司股权平价转让要交税吗
  • 银行收付款通知短信
  • 在杂志上发表论文
  • 城市创建税务人在行动
  • 公司股票卖出会计处理
  • 房产赠与税如何征收2021
  • 理财产品属于货币吗
  • 预提厂房租金
  • 小企业短期投资的核算应设置的会计科目有
  • 费用开两次发票怎么入账?
  • 物流公司油卡怎么抵税的
  • mac显示器颜色不正常
  • 期末进项税额和销项税额都有余额
  • app data文件夹
  • 什么叫市净率?它有何意义?
  • 事业单位的费用
  • 暂估成本跨年怎么处理分录
  • macbookpro安装dmg
  • 苹果推送最新系统
  • 生产物料报废
  • 笔记本保养技巧和方法
  • 投资利润率用什么表示
  • 单臂路由实验目的
  • php bi
  • 用人单位未为劳动者缴纳社会保险费
  • 蓬莱德尔塔
  • yolo系列算法全家桶
  • 员工持股平台合伙企业
  • 每个公司都要交房产税吗
  • 印花税土地使用权计税依据
  • 注册公司冠名省需要多少注册资金
  • 当月已入账可是未入账
  • 上个月未开票本月怎么算
  • 资产负债表中应交税费为负数是什么意思
  • python循环语句的语法
  • 免交增值税应该计入什么科目
  • 银行汇票用什么会计分录
  • mysql客户端程序的功能是什么
  • 房租押金可以要回来吗
  • pos机刷卡未成功却扣了钱啥时候就退回来了
  • 做账的基本流程和格式
  • 出口货物预收账款分录
  • 建筑工程人工费调整
  • 小规模开票的税点是多少
  • 单独入账的土地为啥不提折旧
  • 医院产生的相关费用
  • 个税申报工资比实发工资高
  • 什么叫社保差额调整
  • 调整后视镜
  • os x10.11el capitan公测版beta5更新了什么?os x10.11el capitan公测版beta5发布下载
  • win7隐藏共享文件夹
  • wind10手机
  • ubuntu20.10
  • 安装win7需要激活吗
  • 苹果Mac系统怎么切换输入法
  • Win7开机黑屏只有鼠标,进入安全模式也是黑屏
  • linux哪些方法可以查看命令的详细信息
  • win10老是弹提示
  • linux 系统变量
  • layer关闭当前窗口
  • get请求的url
  • 基于HTML5和CSS3的响应式Web的设计与实现
  • linux文件inode详解
  • jquery ui draggable
  • jquery函数大全
  • 浙江省国家电子税务局官网登录
  • 青岛市高新区是红岛吗
  • 车辆整备质量怎么填
  • 作废税票会影响税率吗
  • 新疆房车自驾营地
  • 车辆报废补贴怎么拿
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设