小程序/H5固定单页面展示(长短屏自适应,不出现滚动条)的适配方案

本文主要是介绍小程序/H5固定单页面展示(长短屏自适应,不出现滚动条)的适配方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

场景描述:

在开发小程序、H5中,可能存在需要在各种长短屏下都一个页面展示内容,不出现滚动条的场景。

我们知道宽度的话按照设计稿750计算,大家基本没啥问题,H5就是750rem,小程序用750rpx,对吧,什么屏幕都能适配全屏。但是高度怎么办呢?

 

方案介绍:

此种方案中,必须有些可缩放元素存在:一张图片;其他部分如:底部按钮、底部文字、底部介绍等元素不能缩放。

此时可以利用750/windowWidth计算一个比率。

然后对于适配图片的处理方式是,1、计算设计稿中,不可缩放元素的高度;2、用屏幕高度减去不可缩放元素高度;3、对于可缩放适配的图片将其高度设置成1、2计算后的值乘以缩放比率,然后在保持宽高比的情况下,缩放图片宽度;如此便可适配

具体执行如下:

1、计算适配图片高度

其中550是页面中不可缩放元素的高度,所白了就是需要预留多高才能显示这些必须显示的玩意。

那么适配图片的高度就是屏幕剩余空间的高度,说白了还剩多少都给他。(但是如果很极端,屏幕不正常的小也不能让适配图片一点也看不到,或者屏幕不正常的长也不能让适配图片无限变大,那就需要给到最大最小值了)

    wx.getSystemInfo({success: (res) => {console.log(res);this.setData({windowW: res.windowWidth,windowH: res.windowHeight,fixRate: 750 / res.windowWidth})this.setData({liHuiHeight: Math.min(Math.max(res.windowHeight * 750 / res.windowWidth - 550, 300),1000)})},})

2、给图片赋值

小程序中,重点要设置mode为heightFix(高度不变,宽度自动变化,保持原图宽高比不变)

 <image mode="heightFix"style="height:{{liHuiHeight}}rpx" src=""class="lihui-item"></image>

如果页面中,还有其他元素需要适配,比如有个按钮,需要一直在页面中上方,采用fixed定位做的,那么也可以通过此法设置他的值 

这篇关于小程序/H5固定单页面展示(长短屏自适应,不出现滚动条)的适配方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827372

相关文章

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创