首页 > 其他分享 >uniapp怎么获取元素高度,获取元素节点信息,获取界面剩余高度

uniapp怎么获取元素高度,获取元素节点信息,获取界面剩余高度

时间:2024-03-21 14:35:32浏览次数:19  
标签:box 元素 高度 height 获取 data

一、在uniapp项目开发的过程中,常常需要获取元素的高度信息,来更容易的实现元素的布局控制,使用场景:列入动态的计算容器的高度,设置组件的最小高度等等

在获取元素节点信息中,通常有两种情况:①获取单个 ②获取v-for循环元素的节点信息,话不多说,直接上代码

注意:需要在onReady()之后获取,否则无效

①、使用uni.createSelectorQuery()来获取节点信息

<template>
    <view>
        <view class="box"></view>
    </view>
</template>
 
<script>
    export default {
        data() {
            return {
 
            }
        },
        onReady() {
            //.box获取class为box的元素,如果使用的id= 'box' 则使用'#box'
            uni.createSelectorQuery().select('.box').boundingClientRect(data => {
                console.log(data)
            }).exec()
        },
        methods: {
 
        }
    }
</script>
<style>
    .box {
        height: 100px;
        width: 200px;
        background-color: pink;
    }
</style>

②、通过selectAll()来实现获取循环元素的节点信息

<template>
    <view>
        <view class="box" v-for="item in 4"></view>
    </view>
</template>
 
<script>
    export default {
        data() {
            return {
 
            }
        },
        onReady() {
            //.box获取class为box的元素,如果使用的id= 'box' 则使用'#box'
            uni.createSelectorQuery().selectAll('.box').boundingClientRect(data => {
                console.log(data)
            }).exec()
        },
        methods: {
 
        }
    }
</script>
<style>
    .box {
        height: 100px;
        width: 200px;
        background-color: pink;
    }
</style>

二、 同时在开发中常常还会遇到需要计算页面剩余高度,用于设置其他元素的高度

实现原理:首先获取设备高度(uni.getSystemInfo())减去其他容器的高度,则为页面剩余高度

<template>
    <view>
        <view class="box"></view>
    </view>
</template>
 
<script>
    export default {
        data() {
            return {
 
            }
        },
        onReady() {
            uni.getSystemInfo({
                success(res) {
                    let screenHeight = res.screenHeight
                    let height = ''
                    //.box获取class为box的元素,如果使用的id= 'box' 则使用'#box'
                    uni.createSelectorQuery().select('.box').boundingClientRect(data => {
                        height = screenHeight - data.height
                        console.log(height)
                    }).exec()
                }
            })
        },
        methods: {
 
        }
    }
</script>
<style>
    .box {
        height: 100px;
        width: 200px;
        background-color: pink;
    }
</style>

标签:box,元素,高度,height,获取,data
From: https://www.cnblogs.com/hs20011205/p/18087305

相关文章

  • wmic diskdrive 命令参数,可以用来获取不同的硬盘信息
    以下是一些常用的wmicdiskdrive命令参数:Caption:获取硬盘驱动器的标题信息。示例:wmicdiskdrivegetCaptionManufacturer:获取硬盘制造商信息。示例:wmicdiskdrivegetManufacturerModel:获取硬盘驱动器的型号信息。示例:wmicdiskdrivegetModelSiz......
  • uniapp获取定位导致APP闪退
    刚开始用setInterval定时1秒获取地图定位,因为uni.getLocation经常会返回失败,导致整个定时器错乱闪屏崩溃。本页面有一个webview,通过evalJS执行webview嵌套页面的方法。<web-view@message="getMessage"v-if="url":src="url"></web-view> 错误代码:this.time=setInterv......
  • 【Selenium】隐藏元素的定位和操作
    一、selenium中隐藏元素如何定位?如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了但是吧~~~能定位到并不意味着能操作元素(如click,clear,send_keys)二、隐藏元素如下图有个输入框和一个登录的按钮,本来是显示的 元素的属性隐......
  • 获取电脑硬件信息
    //////获取cpu序列号//////stringpublicstringGetCpuInfo(){stringstrID="";ManagementClassmc=newManagementClass("Win32_Processor");ManagementObjectCollectionmoc=mc.GetInstances();foreach(ManagementObjectmoinmoc){st......
  • 获取Wireshark数据流
    背景:由于业务需要,需要接入一个第三方的设备,并在现场完成了数据抓包。实现一个全新的协议,但是没有设备。为了测试协议的正确性,需要把wireshark抓取数据的二进制进行回放。本文主要是把这些数据流提取成一个文件,并读取到内存中进行解析。 操作方法:根据端口和地址过滤数据包......
  • lc3072 将元素分配到两个数组中2
    给定数组nums[n],定义f(arr,val)表示数组arr中大于val的元素个数,需要操作n次将nums分配到两个数组里,具体如下:第1次操作将nums[1]追加到arr1,第2次操作将nums[2]追加到arr2后续第i次操作:如果f(arr1,nums[i])>f(arr2,nums[i]),则将nums[i]追加到arr1。如果f(arr1,nums[i])<f(a......
  • 使用iframe内嵌网页的时候,如何做到内嵌网页的高度自适应 有大用
    原文链接:http://shipingzhong.cn/node-admin/9865在页面无刷新更新方面,虽然现在的ajax很强悍,但是处理代码相对多点。想比之下,iframe就简单多了!处理iframe的自适应宽、高,会经常用到,网上整理了一份,写在这里备用:单个iframe高度自适应:<iframe id="iFrame1" name="iFrame1" widt......
  • 获取系统时间的方法
    Linux方法一使用time.h中的gettimeofday(),示例代码如下,#include<iostream>#include<sys/time.h>intmain(){structtimevalstart,end;doubletotalTime;gettimeofday(&start,NULL);//在这里执行代码...gettimeofday(&end,NU......
  • 01天【代码随想录算法训练营34期】 第一章 数组part01 (704. 二分查找、 27. 移除元
    二分查找classSolution(object):defsearch(self,nums,target):low=0high=len(nums)-1while(low<=high):mid=(high+low)//2ifnums[mid]==target:returnmide......
  • 【Python使用】python高级进阶知识md总结第5篇:获取进程编号,1. 获取进程编号的目的【
    python高级进阶全知识知识笔记总结完整教程(附代码资料)主要内容讲述:操作系统,虚拟机软件,Ubuntu操作系统,Linux内核及发行版,查看目录命令,切换目录命令,绝对路径和相对路径,创建、删除文件及目录命令,复制、移动文件及目录命令,终端命令格式的组成,查看命令帮助。HTTP请求报文,HTTP响应报文......