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

  • iPhone视频怎么借助第三方软件来调倍速(苹果手机视频怎么共享到ipad)

    iPhone视频怎么借助第三方软件来调倍速(苹果手机视频怎么共享到ipad)

  • 苹果13怎么换全套主题的软件(苹果13怎么换全面屏模式)

    苹果13怎么换全套主题的软件(苹果13怎么换全面屏模式)

  • 抖音小店可以手机上传产品吗(抖音小店可以手机操作吗)

    抖音小店可以手机上传产品吗(抖音小店可以手机操作吗)

  • spacebar是哪个键(spacebar是哪个键盘)

    spacebar是哪个键(spacebar是哪个键盘)

  • 盒马鲜生可以微信支付吗(盒马鲜生可以微信付款吗)

    盒马鲜生可以微信支付吗(盒马鲜生可以微信付款吗)

  • 华为mate30多少hz(华为MATE30多少钱)

    华为mate30多少hz(华为MATE30多少钱)

  • 快手上能看到谁看过我的作品吗(快手上能看到谁举报我吗)

    快手上能看到谁看过我的作品吗(快手上能看到谁举报我吗)

  • 苹果手机看抖音发热怎么回事(苹果手机看抖音闪退是怎么回事)

    苹果手机看抖音发热怎么回事(苹果手机看抖音闪退是怎么回事)

  • 淘宝超过承诺发货时间(淘宝超过承诺发货时间每延迟一天)

    淘宝超过承诺发货时间(淘宝超过承诺发货时间每延迟一天)

  • 手机上的nfc功能是什么意思,怎样用(怎么打开手机上的nfc功能)

    手机上的nfc功能是什么意思,怎样用(怎么打开手机上的nfc功能)

  • 电脑开机后软件打不开怎么回事(电脑开机后软件自动启动怎么解决)

    电脑开机后软件打不开怎么回事(电脑开机后软件自动启动怎么解决)

  • office只能安装在c盘吗(office365只能安装在c盘)

    office只能安装在c盘吗(office365只能安装在c盘)

  • 怎样设置微信背景墙可以不让别人看(怎样设置微信背景墙)

    怎样设置微信背景墙可以不让别人看(怎样设置微信背景墙)

  • 华为能不能用airpods(华为能不能用推特)

    华为能不能用airpods(华为能不能用推特)

  • 快手骂人举报会封号吗(快手骂人举报会怎么样)

    快手骂人举报会封号吗(快手骂人举报会怎么样)

  • 趣步为什么置换失败(趣步置换500个需要等多久)

    趣步为什么置换失败(趣步置换500个需要等多久)

  • 华为荣耀9x比8x好在哪(华为荣耀9X比小米8强吗)

    华为荣耀9x比8x好在哪(华为荣耀9X比小米8强吗)

  • vivo手机降温功能在哪(vivo手机降温功能怎么关闭)

    vivo手机降温功能在哪(vivo手机降温功能怎么关闭)

  • 快手怎么链接淘宝店铺(快手怎么连接淘宝卖货)

    快手怎么链接淘宝店铺(快手怎么连接淘宝卖货)

  • 小米手机怎么设置国家(小米手机怎么设置来电铃声)

    小米手机怎么设置国家(小米手机怎么设置来电铃声)

  • 钉钉怎么截图聊天窗口(钉钉怎么截图聊天记录长图)

    钉钉怎么截图聊天窗口(钉钉怎么截图聊天记录长图)

  • pr怎么加视频特效字幕(pr如何给视频添加特效)

    pr怎么加视频特效字幕(pr如何给视频添加特效)

  • 芒果会员在哪里切换账号(芒果会员在哪里输入兑换码啊)

    芒果会员在哪里切换账号(芒果会员在哪里输入兑换码啊)

  • kindle为啥不送充电头(kindle 送书)

    kindle为啥不送充电头(kindle 送书)

  • win10找不到打印机设备(Win10找不到打印机扫描操作该怎么办)

    win10找不到打印机设备(Win10找不到打印机扫描操作该怎么办)

  • 抖音五分钟视频怎么弄(抖音五分钟视频怎么发)

    抖音五分钟视频怎么弄(抖音五分钟视频怎么发)

  • phpcms中增删改查怎么用(php增删改查语句)

    phpcms中增删改查怎么用(php增删改查语句)

  • 2023小规模免税收入会计分录怎么写啊
  • 进出口税则是什么意思
  • 财政的税收
  • 内账会计会承担法律责任吗
  • 广告制作要交文化部门吗
  • 公司出售固定资产
  • 分公司企业所得税怎么缴纳
  • 向投资者支付股利
  • 赔偿款能否税前抵扣
  • 转移性支出包括上解上级支出
  • 进行利润分配时必须遵循的原则
  • 转贴现视为贷款银行如何进行账务处理?
  • 免费样品销售给客户计入什么科目
  • 经营性罚款和行政性罚款的区别
  • 公司注销后如何申请强制执行
  • 个人所得税怎么查
  • 内蒙古地税电子税务局app
  • 货物运输企业纳税多少
  • 公司发生的业务可以转让给子公司嘛?
  • 固定资产清理账面价值怎么算
  • 买方投资公司
  • 财务费用错记成管理费用
  • 以房抵债房屋能否判决过户
  • 计提税金怎么提
  • ios9.3.5如何越狱
  • Win10 (21H1)Build 19043.1266更新补丁KB5005611正式版发布:附修复更新内容
  • 转账支票出账日期
  • 以旧换新销项税额对企业采取以旧换新方式销售
  • php表单的作用是什么
  • 除了正式发票还有啥
  • nodejs.org
  • yii框架搭建
  • 隔两个月发票如何作废
  • 报关单的运费没填怎么办
  • 税号一般多少位数字
  • 月末制造费用转入生产成本,因此期末账户一定无余额吗?
  • 因质量原因退货和召回的产品,均应按照规定
  • mongodb $and
  • 实际发生坏账损失不影响应收账款
  • MSSQL output使用
  • 个人所得税如何缴纳
  • 注册资本没有全额投入,公司银行贷款贷款利息怎么入账
  • 个人开发者要缴税吗
  • 营业外支出罚没支出包括
  • 银行存款利息计算器在线计算器
  • 限售股锁定期延长
  • 快递行业的会计岗位
  • 开红字发票后再开蓝字发票如何入账
  • tabletpc输入面板怎么打开
  • ubuntu通讯软件
  • 使用dhcp的好处有哪些
  • freebsd安装mysql
  • bios密码忘记了要怎么重置
  • kdeskcore.exe是什么
  • win7无法登录桌面
  • win8.1怎么关闭防火墙
  • jQuery ajax读取本地json文件的实例
  • echarts怎么用
  • 层序遍历递归实现
  • windows e
  • unity learn premium
  • jquery的事件处理有哪些
  • 常用标准化布局标签有哪些?
  • jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
  • jquery的checkbox,radio,select等方法小结
  • listview添加数据
  • jquery当前时间
  • 外部js获取当前vue实例
  • 用python过滤列大于0的值
  • jquery增加一行和删除
  • 百度地图一口价为什么还多收费
  • 东莞市电子税务局app
  • 被认为是税务风险的原因
  • 江苏囯税电子
  • 有机肥料销售是做什么的
  • 支持国税普通发展的原因
  • 税收分类分级管理后如何开展风险管理
  • 广东省地税电子税务局
  • 免教育费附加会计分录
  • 股东向公司借款需要什么手续
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设