返回顶部
首页 > 资讯 > 精选 >怎么精确计算微信小程序scrollview高度
  • 196
分享到

怎么精确计算微信小程序scrollview高度

2023-06-26 09:06:03 196人浏览 安东尼
摘要

这篇文章主要介绍了怎么精确计算微信小程序scrollview高度的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么精确计算微信小程序scrollview高度文章都会有所收获,下面我们一起来看看吧。一、布局分析,

这篇文章主要介绍了怎么精确计算微信小程序scrollview高度的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么精确计算微信小程序scrollview高度文章都会有所收获,下面我们一起来看看吧。

一、布局分析,推导公式

先给个示例图:

怎么精确计算微信小程序scrollview高度

这是一个稍微复杂点的页面,最上面是两个 tab 标签,每个标签的页面是一个子组件。第二个子组件布局是上面一个标题,下面是 scroll-view 。

 

页面分三部分,tab,title,scroll-view。不要忘了每个部分间还有 margin , 这里设置的是每个 margin 都是 10px 。

所以要计算 scroll-view 的高度可以得出下面 公式 :

scroll-view 的高度 = 页面可用高度 - tab高度 - title高度 - 10 - 10复制代码

为什么减两个 10 呢?上面说了 10 是 margin 的距离, tab 与 title 有 10px 的 margin, title 与 scroll-view 也有 10px 的 margin 。

需要注意的是计算用的单位都是 px ,不是小程序的 rpx 。因为下面调用接口获取可用屏幕高度时得到的就是 px 。

二、计算变量的高度

2.1 计算单个节点高度

上面的公式中的变量有:页面可用高度, title 的高度, tab 的高度。

这里需要计算的就是 页面可用高度 和 title 的高度,因为为了简单 tab 的高度是写死的 50px , 当然不写死也没关系,在父组件中计算 tab 的高度传给子组件就好。

下面正式开始计算

//计算 scroll-view 的高度computeScrollViewHeight() {  let that = this  let query = wx.createSelectorQuery().in(this)  query.select('.title').boundinGClientRect(function(res) {    //得到标题的高度    let titleHeight = res.height    //scroll-view的高度 = 屏幕高度- tab高(50) - 10 - 10 - titleHeight    //获取屏幕可用高度    let screenHeight = wx.getSystemInfoSync().windowHeight    //计算 scroll-view 的高度    let scrollHeight = screenHeight - titleHeight - 70    that.setData({      scrollHeight: scrollHeight    })  }).exec()},复制代码

这里主要是通过小程序封装的 api 来计算的。

wx.getSystemInfoSync() 可以得到设备的各种信息,关于高度的参数有两个,一个是屏幕高度 screenHeight ,一个是可使用窗口高度 windowHeight 。注意计算的时候要用 windowHeight ,这样算出来的高度才是对的。 screenHeight 是手机的屏幕高度,包含了手机的状态栏和小程序标题栏。

有了可用屏幕高度,还需要元素的高度。计算元素高度小程序也提供了 API,参见WXML节点信息API。

具体用法看文档就好了,精简的使用步骤就是:

let query = wx.createSelectorQuery().in(this)query.select('.title').boundingClientRect(function(res) {    //在这里做计算,res里有需要的数据}).exec()复制代码

注意在组件 component 里使用的话,要用 wx.createSelectorQuery().in(this) ,将选择器的选取范围更改为自定义组件component内。(初始时,选择器仅选取页面范围的节点,不会选取任何自定义组件中的节点。)

如果想同时测量多个节点的高度呢?

2.2 计算多个节点高度

能计算单个当然也能同时计算多个。如下:

computeScrollViewHeight() {  let that = this  let query = wx.createSelectorQuery().in(this)  query.select('.search').boundingClientRect()  query.select('.title-wrapper').boundingClientRect()  query.exec(res => {    let searchHeight = res[0].height    let titleHeight = res[1].height    let windowHeight = wx.getSystemInfoSync().windowHeight    let scrollHeight = windowHeight - searchHeight - titleHeight - 30 - 5 - 50     this.setData({ scrollHeight: scrollHeight})  })},复制代码

有几个节点就写几个 query.select('.search').boundingClientRect() , 然后调用 query.exec() 执行操作获取节点信息的数组

注意:调用封装好的 computeScrollViewHeight() 的时机是在生命周期函数的 ready() 中,不能在 created() ,否则取不到数据。

参见Component构造器

怎么精确计算微信小程序scrollview高度

三、在 wxml 使用计算的结果

计算完成后如何使用呢?

<scroll-view scroll-y style='height: {{scrollHeight + "px"}}'></<scroll-view>复制代码

通过上面的方法使用。

注意:一定要在变量后面加上单位 px ,不加的话会出错。

关于“怎么精确计算微信小程序scrollview高度”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么精确计算微信小程序scrollview高度”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么精确计算微信小程序scrollview高度

本文链接: https://lsjlt.com/news/308281.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么精确计算微信小程序scrollview高度
    这篇文章主要介绍了怎么精确计算微信小程序scrollview高度的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么精确计算微信小程序scrollview高度文章都会有所收获,下面我们一起来看看吧。一、布局分析,...
    99+
    2023-06-26
  • 微信小程序计算器(含源码)、含js精确运算代码
    目录 一、引言与效果图  二、源码 0.目录结构: 1.xxxx.wxml文件  2.样式文件 (1)xxxx.less文件 (2)xxxx.wxss文件 (不会使用 less 的可以用这个) 3.xxxx.json文件 4.accura...
    99+
    2023-10-21
    微信小程序 小程序 前端
  • 微信小程序————简易计算器
    1、计算器小程序     点击页面数字按键可以计算简单的加减乘除数据运算。 2、大概结构 页面显示   大概逻辑是当点第一次击数字键的时候要有个变量来存储这个点击的数,然后再来个记录点击运算符的变量,等要算的数全输入后,最后“...
    99+
    2023-10-26
    微信小程序 小程序
  • 微信小程序实现小型计算器
    本文实例为大家分享了微信小程序实现小型计算器的具体代码,供大家参考,具体内容如下 app.js // app.js App({   onLaunch() {   },   REGEX...
    99+
    2024-04-02
  • 微信小程序怎么实现swiper高度自适应
    本篇内容主要讲解“微信小程序怎么实现swiper高度自适应 ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序怎么实现swiper高度自适应 ”吧!要求:swiper高度自适应wxml&l...
    99+
    2023-06-26
  • 微信小程序实现计算器小功能
    微信小程序现在越来越火爆了,我也看到很多在校大学生都在自学了,那些专门从事APP开发,网页开发的工作者更是看到了小程序的前景,在小程序领域也掺上一脚,本人也是自学小程序的,初期跟很多...
    99+
    2024-04-02
  • 微信小程序开发怎么计算开发成本
    这篇文章主要介绍了微信小程序开发怎么计算开发成本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1微信小程序开发需要多少钱  小程序开发的成本投入大概在2万左右,相比较APP软...
    99+
    2023-06-26
  • 微信小程序实现简单计算器
    微信小程序写的简单计算器,供大家参考,具体内容如下 jisaunqi.js // pages/jisuanqi/jisuanqi.js Page({ data: {...
    99+
    2024-04-02
  • 微信小程序实现计算器功能
    本文实例为大家分享了微信小程序实现计算器功能的具体代码,供大家参考,具体内容如下 一、微信小程序开发工具界面 二、目录结构 第一次进到页面它的目录结构如下: 三、需要注意的问题 ...
    99+
    2024-04-02
  • 微信小程序计算器实例详解
    微信小程序计算器实例,供大家参考,具体内容如下 index.wxml <view class="content"> <view class="num"...
    99+
    2024-04-02
  • 微信小程序实现简易计算器
    微信小程序之简易计算器,供大家参考,具体内容如下 一、介绍 1.中缀表达式 中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术...
    99+
    2024-04-02
  • 微信小程序实现计算器案例
    本文实例为大家分享了微信小程序实现计算器的具体代码,供大家参考,具体内容如下 项目展示 页面设计 分为上面输入的显示部分和下面按键部分 <!--pages/index/i...
    99+
    2024-04-02
  • 微信小程序实现利息计算器
    本文实例为大家分享了微信小程序实现利息计算器的具体代码,供大家参考,具体内容如下 一、案例说明 设计一个小程序,输入本金、利率,默认本金10000元、利率3%,计算存入银行,复利计息...
    99+
    2024-04-02
  • 怎么在微信小程序中获取图片的宽度与高度
    这篇文章给大家介绍怎么在微信小程序中获取图片的宽度与高度,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。重点: 在图片加载完成后获取对应的图片信息.经查小程序开发文档后发现, 有提供加载成功的回调, 如下:演示Demo如...
    99+
    2023-06-08
  • 微信小程序进度条怎么实现
    这篇文章主要介绍“微信小程序进度条怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序进度条怎么实现”文章能帮助大家解决问题。progress进度条。属性名类型默认值说明percentF...
    99+
    2023-06-26
  • 用微信小程序实现计算器功能
    本文是用微信小程序写的一个简单的计算器,有兴趣的小伙伴可以了解一下。 页面部分 <view class='box'> <view class='txt...
    99+
    2024-04-02
  • 微信小程序如何实现计算器小功能
    这篇文章主要介绍微信小程序如何实现计算器小功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信小程序现在越来越火爆了,我也看到很多在校大学生都在自学了,那些专门从事APP开发,网页开发的工作者更是看到了小程序的前景...
    99+
    2023-06-20
  • 微信小程序如何让页面高度为屏幕的高度
    微信小程序设置页面高度为屏幕高度的方法进入微信开发者工具,打开小程序项目文件,在项目文件中,查找并打开utlls/app.json文件;最后,app.json文件打开后,设置page的高度为100%即可;.page{height:100vh...
    99+
    2024-04-02
  • 微信小程序注册费用怎么算
    微信小程序注册是免费的,不需要支付任何费用。但是,如果您需要使用一些高级功能,例如支付功能,您需要开通微信支付,需要支付一定的服务费...
    99+
    2023-06-03
    微信小程序注册费用 微信小程序
  • 微信小程序如何获取图片宽度与高度
    起源 最近在做A需求, 其中有个小功能点描述如下: 从配置端返回张图片, 期望宽度不变(750)、高度根据图片自适应. 我以为的 // 为便于讲解, 将css作为style属...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作