位置: IT常识 - 正文

图文详解uni-app PC端宽屏适配方案(图文详解:台盆柜安装的全过程)

编辑:rootadmin
图文详解uni-app PC端宽屏适配方案 图文详解uni-app PC端宽屏适配方案

推荐整理分享图文详解uni-app PC端宽屏适配方案(图文详解:台盆柜安装的全过程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:图文详解地理图册,图文详解管道支架制作安装标准,图文详解消防管道支(吊)架的制作安装标准,图文详解地理图册,图文详解地理图册,图文详解地理图册电子版,图文详解一本通,图文详解管道支架制作安装标准,内容如对您有帮助,希望把文章链接给更多的朋友!

随着互联网的发展,iOS、Android、H5以及各种小程序快应用层出不穷,随之而来的问题就是如何用一套代码,适配多个平台,其中uni-app表现优异,已经实现了手机端全覆盖,支持iOS、Android、H5、微信小程序、阿里小程序、百度小程序、字节跳动小程序、QQ小程序、快应用、360小程序,并且在各端均有优异的运行性能。并且从2.9版本起,uni-app 进一步提供了PC等宽屏的适配方案,完成了大统一。

具体怎么用,我们下面用一个简单的案列让大家直观感受:

比如现在的需求是,一个列表卡片,点击卡片进入卡片详情页,在小程序,ios, Android, 以及h5上表现形式如下:

小程序

H5

但是我想在宽屏pc端兼容这个需求,现在左边固定宽度展示列表卡片,右边剩余宽度展示选中的卡片详情,表现形式如下:

Uni-app具体做法如下:

窗体级适配:leftwindow、rightwindow、topwindow等分栏组件级适配:match-media组件rpx的宽屏响应窗体级适配:leftwindow分栏

新建rightWindow.vue页面(这个页面不需要从写,只需要复用原来的组件detail.vue)

<template> // 原来的组件detail.vue<detail ref="detailPage" :text="detail" ></detail></template><script>export default {data(){return {detail:''}},created(e) { //监听自定义事件,该事件由左侧列表页的点击触发 uni.$on('updateDetail', (e) => {this.detail = decodeURIComponent(e.detail)// 执行 detailPage组件,即:/pages/detail/detail.vue 页面的load方法this.$refs.detailPage.load(e.detail); })}}</script>

在列表卡片页面,处理点击卡片后与rightWindow交互通信

<template> <view class="content-box"><view class="each-box" v-for="(item,index) in list" :key="index" @click="goDetail(item?.des)"><image class="content-img" :src="item?.url" mode="scaleToFill" /><view class="content-des">{{item?.des}}</view></view></view></template><script> methods: { goDetail(detail){ if (this.pageWidth > 768) { //若为宽屏,则触发右侧分栏详情页的自定义事件,通知右侧窗体刷新新闻详情 uni.$emit('updateDetail', { detail: encodeURIComponent(detail) }) } else { // 若为窄评,则打开新窗体,在新窗体打开详情页面 uni.navigateTo({ url: '/pages/detail/detail?detail=' + encodeURIComponent(detail) }); } } }</script>

在pages.json中注册rightWindow

// 页面适配"rightWindow": { "path": "pages/rightWindow/rightWindow.vue", // 指定 rightWindow 页面文件 "style": { "width": "calc(100vw - 390px)" // 页面宽度(390px是左边固定宽度) }, "matchMedia": { "minWidth": 580 //生效条件,当窗口宽度大于580px时分屏显示 } },

更多配置详见文档:https://uniapp.dcloud.net.cn/tutorial/adapt.html

效果如下:

组件级适配:match-media组件

rightWindow等方案是页面窗体级适配方案,适用于多页面的组合分栏显示,那么在同一个页面内,不同组件根据适配方案除了传统的媒体查询外,uni-app提供了match-media组件

图文详解uni-app PC端宽屏适配方案(图文详解:台盆柜安装的全过程)

用法:

在match-media组件中放置内容,并为该组件指定一组 media query 媒体查询规则,如屏幕宽度。运行时,如屏幕宽度满足查询条件,则这个组件就会被展示,反之则隐藏。

<template><view class="component-style"><!-- 这个宽度是整个屏幕宽度,不是分屏的宽度--><match-media :min-width="375" :max-width="768" ><view class="min">{{ text }}</view><view class="min">{{ text }}</view></match-media><match-media :min-width="769"><view class="max">{{ text }}</view><view class="max">{{ text }}</view></match-media></view></template><style scoped lang="less">.component-style{padding: 20px 10px;border-radius: 4px;.max{font-size: 30px;color: palevioletred;}.min{font-size: 20px;color: olive;}}</style>

效果如下:

width<=580

width>580

rpx的宽度适应

设计Mobile App时,设计师常会以 iPhone6 作为视觉稿的标准,即按照750px屏幕宽度出图;程序员以750px作为基准,根据设备实际尺寸,动态换算(缩放)出适合当前设备屏幕的元素宽高。

这就是rpx(responsive pixel)的实现思路,只不过rpx由框架引擎动态换算元素尺寸,无需程序员写代码干预。

面向mobile端时,rpx是一种很理想的解决方案,因为各种移动设备的屏幕宽度差异不是很大,相对于750px微调缩放后的效果,可最大化的还原设计师的设计。

但是,一旦脱离移动设备,在pc屏幕,或者pad横屏状态下,因为屏幕宽度远大于750了。此时rpx根据屏幕宽度变化的结果就严重脱离了预期,大的惨不忍睹。

下面我们用一个32 x 32的icon为例

.icon-style{ width: 64rpx ; // 若设计稿宽度为 375px,icon在设计稿上的宽度为32px,那么icon在 uni-app 里面的宽度应该设为(750 * 32 / 375)rpx height: 64rpx ;}

在小屏,显示效果:

运行到1200px的pc端,经过计算的icon = 102px,效果如下(icon太大了):

为此,在uni-app 2.9+起,新增了 rpx 按750px做基准屏宽的生效范围控制,即屏幕宽度超过某阀值(默认为960px)后,将不再以屏幕实际宽度换算元素宽高,而改以固定屏幕宽度(默认为375px)计算元素宽高

以上述图文列表为例,当屏幕宽度为1200px(大于960px)时,将采用固定的屏幕宽度(默认375px)计算缩略图的宽高,按照这个机制,pc端运行效果如下,相比上图的放大变丑,展现更为理想优雅。

pages.json配置如下

"globalStyle": {"rpxCalcMaxDeviceWidth": 960, // rpx 计算所支持的最大设备宽度,单位 px,默认值为 960"rpxCalcBaseDeviceWidth": 375// 设备实际宽度超出 rpx 计算所支持的最大宽度时,rpx计算所采用的固定屏幕宽度,单位 px,默认值为 375},

当然,开发者可在rpx宽度管控的基础上,略作调整,实现更好的pc宽屏效果,如宽屏大于多少px时候,固定列表宽度且居中显示,如下图。实际应用中,可采用前面介绍的分栏窗口,将列表在左侧分栏中显示。

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

上一篇:Unity导出WebGL工程,并部署本地web服务器(unity导出webgl报错)

下一篇:memorymeter.exe是什么进程 有什么用 memorymeter进程查询(memory tester)

  • 华为p40pro有息屏时钟功能吗(华为p40pro熄屏设置)

    华为p40pro有息屏时钟功能吗(华为p40pro熄屏设置)

  • 华为mate30pro5g多少倍像素(华为mate30pro5g多少赫兹)

    华为mate30pro5g多少倍像素(华为mate30pro5g多少赫兹)

  • 苹果xs充电速度(苹果xs充电速度测试)

    苹果xs充电速度(苹果xs充电速度测试)

  • 苹果xr设置门禁卡(iphone xr 门禁卡 设置)

    苹果xr设置门禁卡(iphone xr 门禁卡 设置)

  • 小栈是什么意思(小栈的栈怎么写)

    小栈是什么意思(小栈的栈怎么写)

  • 微信剪切快捷键ctrl加什么(微信剪切快捷键用不了了)

    微信剪切快捷键ctrl加什么(微信剪切快捷键用不了了)

  • 抖音上共同联系人是微信还是通讯录(抖音共同联系人一定联系过吗)

    抖音上共同联系人是微信还是通讯录(抖音共同联系人一定联系过吗)

  • 小度能控制小米设备吗(小度能控制小米的灯吗)

    小度能控制小米设备吗(小度能控制小米的灯吗)

  • 短视频脚本是什么意思(微视频脚本模板)

    短视频脚本是什么意思(微视频脚本模板)

  • vivitek是什么牌子的投影仪(vicomtea属于什么档次)

    vivitek是什么牌子的投影仪(vicomtea属于什么档次)

  • 手机微信视频怎么录音(手机微信视频怎么投屏到电视上)

    手机微信视频怎么录音(手机微信视频怎么投屏到电视上)

  • 美版a1661是全网通吗(美版a1661是什么版本)

    美版a1661是全网通吗(美版a1661是什么版本)

  • 淘宝历史记录怎么查(淘宝历史记录怎么查不到)

    淘宝历史记录怎么查(淘宝历史记录怎么查不到)

  • 华为mate30是不是商务手机(华为mate30属于什么系列)

    华为mate30是不是商务手机(华为mate30属于什么系列)

  • word文档为啥不能修改(word文档为啥不能编辑)

    word文档为啥不能修改(word文档为啥不能编辑)

  • 手机卡用多久可以注销(手机卡用多久可以办银行卡)

    手机卡用多久可以注销(手机卡用多久可以办银行卡)

  • 苹果11怎么换自定义铃声(苹果11怎么换自定义壁纸)

    苹果11怎么换自定义铃声(苹果11怎么换自定义壁纸)

  • 手机ipv6网络收费吗(手机ipv6有什么好处)

    手机ipv6网络收费吗(手机ipv6有什么好处)

  • 乐橙摄像头如何连接(乐橙摄像头如何调整角度?)

    乐橙摄像头如何连接(乐橙摄像头如何调整角度?)

  • 如何把d盘空间分给c盘(如何把D盘空间移到C盘)

    如何把d盘空间分给c盘(如何把D盘空间移到C盘)

  • 华为p30怎么设置一键锁屏(华为p30怎么设置指纹解锁)

    华为p30怎么设置一键锁屏(华为p30怎么设置指纹解锁)

  • oppo reno有什么功能(opporeno有啥特殊功能)

    oppo reno有什么功能(opporeno有啥特殊功能)

  • 后台应用刷新是什么意思

    后台应用刷新是什么意思

  • 哈罗单车怎么进行充值(哈罗单车怎么进不去了)

    哈罗单车怎么进行充值(哈罗单车怎么进不去了)

  • 小米手机白名单设置(小米手机白名单是什么意思)

    小米手机白名单设置(小米手机白名单是什么意思)

  • vivox27耗电快怎么回事(手机耗电快怎么办vivox27)

    vivox27耗电快怎么回事(手机耗电快怎么办vivox27)

  • vivo手机怎么新建相册(vivo手机怎么新建apn接入点)

    vivo手机怎么新建相册(vivo手机怎么新建apn接入点)

  • 搜狗浏览器如何添加插件(搜狗浏览器如何倍速播放视频)

    搜狗浏览器如何添加插件(搜狗浏览器如何倍速播放视频)

  • 魅族删除的照片在哪里(魅族回收站删除的照片怎么恢复)

    魅族删除的照片在哪里(魅族回收站删除的照片怎么恢复)

  • 在WIN7中,如何清理C盘空间?(在win7中,如何搜索指定扩展名的文件)

    在WIN7中,如何清理C盘空间?(在win7中,如何搜索指定扩展名的文件)

  • Win10复制粘贴无法使用如何修复?Win10复制粘贴无法使用的解决方法(win10粘贴复制无效)

    Win10复制粘贴无法使用如何修复?Win10复制粘贴无法使用的解决方法(win10粘贴复制无效)

  • 个体工商户是否跨省经营
  • 价外费用纳税义务发生时间
  • 增值税零申报怎么报税
  • 税务局可以委托公司代征税,你觉得可能吗?
  • 外贸企业出口退税计算公式
  • 原材料的合理损耗
  • 应收票据的会计分录例题
  • 营改增后哪些费用可以抵扣
  • 招待费的增值税专用发票可以抵扣吗
  • 代驾服务费属于什么费用
  • 不能税前扣除的费用有哪些
  • 报销发票财务一旦作废报销人可以收回吗?
  • 投资收益涉及税种
  • 利润是负数不用计提所得税规定是什么?
  • 营改增后固定资产入账
  • 土地出售涉及哪些税
  • 前期物业管理公司
  • 用友软件报表公式
  • 应交增值税为负数代表什么
  • 苹果哪些手机有120hz刷新率
  • 发工资和扣社保的区别
  • 春节发放物品计入什么科目
  • 出差的住宿费较高的原因
  • 电脑重装系统如何分区?
  • 然后重装系统win7
  • 如何在Windows 11上卸载更新
  • php cookie 登录
  • 如何取消windows启动管理器
  • 捐赠与赞助
  • jsPDF + html2canvas A4分页截断 完美解决方案(含代码 + 案例)
  • PHP:mcrypt_get_cipher_name()的用法_Mcrypt函数
  • 企业进行投资的类型有哪些
  • 投资收益是否缴增值税
  • vue $route
  • 销售收入和营业收入的关系
  • 应交税费年末有余额怎么处理
  • 门店有营业执照仓库加工要办营业执照
  • mongodb 随机获取一条数据
  • 购买商标入账
  • 什么企业符合高新技术企业
  • 制造费用属于哪一类会计科目
  • 详解增发万亿国债细节
  • 股东收到投资收益会计科目
  • 免征增值税的会计处理一般纳税人
  • 资本公积是什么意思,举个例子呗
  • 年末未缴增值税应符合计算逻辑
  • 企业投资股权收益如何征税
  • 以前年度的损益调整为负值说明什么
  • 经营租赁的房屋计提折旧吗
  • 专项应付款如何冲减
  • 母公司帮子公司代缴社保
  • 支付宝企业账户在哪里查看
  • 居间费用超过30%违法吗
  • 外地预缴需要缴纳印花税吗
  • 全国县市区最多的省
  • windows iis配置
  • mac更改复制快捷键
  • cmdexe文件损坏
  • win7鼠标右键菜单选项太多怎么删除
  • openoffice使用
  • hptlbxfx.exe
  • rsmsink.exe - rsmsink是什么进程 有何作用
  • win8系统没有声音怎么办
  • ES6中javascript实现函数绑定及类的事件绑定功能详解
  • javascript中的数字型可以用来保存整数或浮点数(小数)
  • html模板 js
  • cssimage
  • Unity3D游戏开发引擎
  • javascript unicode与GBK2312(中文)编码转换方法
  • bat批处理命令大全
  • 利用jQuery及AJAX技术定时更新GridView的某一列数据
  • jquery图片轮播视频
  • unity如何动态刷新滚动列表
  • javascript的语句
  • python res.
  • python whiletrue循环语句
  • 治理体系治理能力十九届四中
  • 云阅卷查询成绩登录入口
  • 海口地税局领导班子
  • 税收负担与税负转嫁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设