位置: IT常识 - 正文

vue项目:大屏自适应解决方案(两种)(vue 大屏可视化设计 开源)

发布时间:2024-01-03
vue项目:大屏自适应解决方案(两种) css缩放方案: 利用transform:scale 进行适配

推荐整理分享vue项目:大屏自适应解决方案(两种)(vue 大屏可视化设计 开源),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue 大屏可视化设计 开源,vue bi 大屏,vue项目大屏自适应,vue大屏自适应,vue大屏可视化开发,vue项目大屏自适应,vue 大屏,vue项目大屏自适应,内容如对您有帮助,希望把文章链接给更多的朋友!

推荐使用v-scale-screen

值得注意的是:

vue 2.6、2.7 要使用

npm install v-scale-screen@1.0.2

vue3:要使用v-scale-screen版本

npm install v-scale-screen@2.0.0

用法:

<v-scale-screen width="1920" height="1080"></v-scale-screen>

Api详见: README.md · v3.0 · mirrors / Alfred-Skyblue / v-scale-screen · GitCode

rem方案

原理: 利用html的font-size变换,在移动端也经常使用此方法。

第一步

在utils目录下创建flexible.js, 复制下方代码。黏贴保存。

注意可能会有报错, 因为eslint, 使用设置好格式化插件的格式化一下就行了。

(function (win, lib) { var doc = win.document; var docEl = doc.documentElement; var metaEl = doc.querySelector('meta[name="viewport"]'); var flexibleEl = doc.querySelector('meta[name="flexible"]'); var dpr = 0; var scale = 0; var tid; var flexible = lib.flexible || (lib.flexible = {}); if (metaEl) { console.warn("将根据已有的meta标签来设置缩放比例"); var match = metaEl.getAttribute("content").match(/initial-scale=([d.]+)/); if (match) { scale = parseFloat(match[1]); dpr = parseInt(1 / scale); } } else if (flexibleEl) { var content = flexibleEl.getAttribute("content"); if (content) { var initialDpr = content.match(/initial-dpr=([d.]+)/); var maximumDpr = content.match(/maximum-dpr=([d.]+)/); if (initialDpr) { dpr = parseFloat(initialDpr[1]); scale = parseFloat((1 / dpr).toFixed(2)); } if (maximumDpr) { dpr = parseFloat(maximumDpr[1]); scale = parseFloat((1 / dpr).toFixed(2)); } } } if (!dpr && !scale) { // var isAndroid = win.navigator.appVersion.match(/android/gi); var isIPhone = win.navigator.appVersion.match(/iphone/gi); var devicePixelRatio = win.devicePixelRatio; if (isIPhone) { // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案 if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) { dpr = 3; } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) { dpr = 2; } else { dpr = 1; } } else { // 其他设备下,仍旧使用1倍的方案 dpr = 1; } scale = 1 / dpr; } docEl.setAttribute("data-dpr", dpr); if (!metaEl) { metaEl = doc.createElement("meta"); metaEl.setAttribute("name", "viewport"); metaEl.setAttribute( "content", "initial-scale=" + scale + ", maximum-scale=" + scale + ", minimum-scale=" + scale + ", user-scalable=no" ); if (docEl.firstElementChild) { docEl.firstElementChild.appendChild(metaEl); } else { var wrap = doc.createElement("div"); wrap.appendChild(metaEl); doc.write(wrap.innerHTML); } } function refreshRem() { var width = docEl.getBoundingClientRect().width; if (width / dpr > 1920) { // 这个位置划重点 1920是设计稿的大小 如果你的设计稿是750 那么就需要将1920替换成750 width = (docEl.clientWidth / 1920) * 1920; } var rem = width / 10; docEl.style.fontSize = rem + "px"; flexible.rem = win.rem = rem; } win.addEventListener( "resize", function () { clearTimeout(tid); tid = setTimeout(refreshRem, 300); }, false ); win.addEventListener( "pageshow", function (e) { if (e.persisted) { clearTimeout(tid); tid = setTimeout(refreshRem, 300); } }, false ); if (doc.readyState === "complete") { doc.body.style.fontSize = 12 * dpr + "px"; } else { doc.addEventListener( "DOMContentLoaded", function () { doc.body.style.fontSize = 12 * dpr + "px"; }, false ); } refreshRem(); flexible.dpr = win.dpr = dpr; flexible.refreshRem = refreshRem; flexible.rem2px = function (d) { var val = parseFloat(d) * this.rem; if (typeof d === "string" && d.match(/rem$/)) { val += "px"; } return val; }; flexible.px2rem = function (d) { var val = parseFloat(d) / this.rem; if (typeof d === "string" && d.match(/px$/)) { val += "rem"; } return val; };})(window, window["lib"] || (window["lib"] = {}));

在main.js中导入一下就行

import '@/utils/flexible'第二步vue项目:大屏自适应解决方案(两种)(vue 大屏可视化设计 开源)

利用vscode插件

扩展搜索: 

 

 填写内容:

设计稿的宽度 * 0.1 = 填写的数字

1920 * 0.1 = 192

750 * 0.1 = 75

使用展示

 选择第二个选项就会自动计算出来啦

 参考链接:javascript - vue大屏自适应解决方案_个人文章 - SegmentFault 思否

本文链接地址:https://www.jiuchutong.com/zhishi/283747.html 转载请保留说明!

上一篇:pavsched.exe是什么进程 pavsched进程查询(pax是什么文件)

下一篇:学修电脑需要掌握哪些东西(现在学修电脑怎么样)

  • 国务院联防联控机制:不再对跨地区流动人员查验健康码

    国务院联防联控机制:不再对跨地区流动人员查验健康码

  • 苹果xs的64g够用吗

    苹果xs的64g够用吗

  • 抖音卡如何获取(抖音2021卡怎么拿)

    抖音卡如何获取(抖音2021卡怎么拿)

  • 苹果x散热不好怎么办(苹果x散热不好吗)

    苹果x散热不好怎么办(苹果x散热不好吗)

  • 微信打招呼过于频繁怎么解决(微信打招呼过于频繁会不会封号)

    微信打招呼过于频繁怎么解决(微信打招呼过于频繁会不会封号)

  • 电脑看电视剧老黑屏是怎么回事(电脑看电视剧老卡怎么办)

    电脑看电视剧老黑屏是怎么回事(电脑看电视剧老卡怎么办)

  • 华为p40多少倍变焦(华为p40有多少倍变焦效果)

    华为p40多少倍变焦(华为p40有多少倍变焦效果)

  • 手机屏幕闪绿屏能修吗(手机屏幕闪绿屏怎么办)

    手机屏幕闪绿屏能修吗(手机屏幕闪绿屏怎么办)

  • qq号密保手机号忘记了QQ不能登录怎么办(qq号密保手机号被改了怎么找回)

    qq号密保手机号忘记了QQ不能登录怎么办(qq号密保手机号被改了怎么找回)

  • 腾讯会员能有几个人登录(腾讯会员能有几个人去看)

    腾讯会员能有几个人登录(腾讯会员能有几个人去看)

  • 双通道内存和单通道内存的差异(双通道内存和单通道差距大吗)

    双通道内存和单通道内存的差异(双通道内存和单通道差距大吗)

  • 电脑下横线是哪个键(电脑的下横线的符号在哪)

    电脑下横线是哪个键(电脑的下横线的符号在哪)

  • 微星主板cpu灯亮白灯(微星主板cpu灯亮白灯是什么意思)

    微星主板cpu灯亮白灯(微星主板cpu灯亮白灯是什么意思)

  • 200兆的网速快吗(200兆的网速算快吗)

    200兆的网速快吗(200兆的网速算快吗)

  • 首行缩进2字符是几厘米(首行缩进2字符是多少厘米)

    首行缩进2字符是几厘米(首行缩进2字符是多少厘米)

  • 手机里照片倒了怎么弄正(手机相册倒了怎么调整)

    手机里照片倒了怎么弄正(手机相册倒了怎么调整)

  • 微信代扣服务在哪里可以取消的?(微信代扣业务是什么)

    微信代扣服务在哪里可以取消的?(微信代扣业务是什么)

  • 网页的工作原理是什么(网页的工作原理有哪些)

    网页的工作原理是什么(网页的工作原理有哪些)

  • 微博修改昵称修改失败是什么意思(微博修改昵称怎么修改)

    微博修改昵称修改失败是什么意思(微博修改昵称怎么修改)

  • ps怎么输入段落文字(ps如何输入段落)

    ps怎么输入段落文字(ps如何输入段落)

  • 京东商城怎样延长收货(京东怎么延长退货时间)

    京东商城怎样延长收货(京东怎么延长退货时间)

  • 快手极速版苹果手机怎么下载不了(快手极速版苹果版怎么没有赚钱)

    快手极速版苹果手机怎么下载不了(快手极速版苹果版怎么没有赚钱)

  • 手机torrent是怎么打开(手机torrent怎么打开)

    手机torrent是怎么打开(手机torrent怎么打开)

  • 小米账户如何重置密码(小米账户怎么重新注册)

    小米账户如何重置密码(小米账户怎么重新注册)

  • p30尺寸大小(p30尺寸长度和宽度)

    p30尺寸大小(p30尺寸长度和宽度)

  • 电脑文件打不开怎么回事(电脑文件打不开了)

    电脑文件打不开怎么回事(电脑文件打不开了)

  • 所得税汇算清缴表在哪里打印
  • 基于法律行为的物权变动三要件
  • 政府会计固定资产盘亏的账务处理
  • 入股资金打进公司帐户要交税吗
  • 社团费用报销制度
  • 资产负债表期初和期末的关系
  • 火车票增值税申报表怎么填
  • 模具费入什么会计科目
  • 打样费单位是什么
  • 试驾车抵税
  • 工资分开发的奖金具体个税是多少?
  • 三级科目称为子目吗
  • 低值易耗品是成本吗
  • 新税法下广告费计税依据
  • 普通发票电子发票没有章
  • 公司员工体检计入什么科目
  • 一台电脑上能装多个金税盘吗?
  • 易票365怎么认证发票
  • 2017年个税税率表及个税计算公式
  • 为员工购置小车怎么做账
  • 银行承兑汇票到期怎么提示付款
  • 股权变更之后税务变更
  • 商业企业做设备维修收入会计分录
  • vue播放器
  • ecshop有哪些bug
  • 跨年度暂估成本
  • macbookpro安装dmg
  • 收费公路通行费财政电子票据可以抵扣吗
  • 增值税一般纳税人资格登记表
  • iframe嵌套页面点击里面的按钮
  • php中哪个命令用来删除当前目录
  • 工程服务费会计怎么做账
  • php重定向伪造referer
  • 商贸公司销售
  • 基于springboot的oa
  • 接受投资收到的现金计入
  • jupyter用法
  • 微信小程序基于什么技术
  • gym版本和render函数
  • 浪漫编程代码
  • GCN经典论文笔记:Semi-Supervised Classification with Graph Convolutional Networks
  • php类型约束用法有哪些
  • 应收账款0
  • 发票作废发票怎么处理
  • 个体生产经营所得优惠政策
  • 织梦常用调用标签
  • 委托加工代收代缴消费税分录
  • mysql5.7.35安装配置教程
  • 商业汇票分为哪几种
  • 团体意外险投保
  • 增值税预缴的计税依据
  • 公司只有收入没有支出违法吗
  • 职工基本医疗保险怎么用
  • 对方开的增值税普票怎么查
  • 固定资产计提折旧是当月还是次月
  • 交易或事项对会计等式的影响基本类型
  • 销户还能申请抚养费吗?
  • 外汇申报填写什么最简单
  • 企业租用个人房屋的财税处理
  • navicat连接教程
  • 系统盘如何重装
  • internetfeatures.exe是什么文件
  • win7任务栏右下角图标空白解决办法
  • ssh可防止什么攻击
  • quicktimeplayer.exe - quicktimeplayer是什么进程 有什么用
  • mgaqdesk.exe进程有什么作用 mgaqdesk进程查询
  • linux创建目录函数
  • win10电脑提示
  • 'GL_COMBINE_ARB' : undeclared 'GL_RGB_SCALE_ARB' : undeclared 问题
  • linux的rz sz命令
  • 记录心率
  • cocos-2dx
  • vbs以管理员权限运行
  • python多进程编程
  • android network
  • python twilio
  • 成都市个人房屋出租税费
  • 车辆缴纳购置税多少钱
  • 物业管理用房如何缴纳房产税
  • 关于新时代新征程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号