首页 > 其他分享 >【快应用】通用方法getBoundingClientRect的使用

【快应用】通用方法getBoundingClientRect的使用

时间:2023-07-28 15:14:22浏览次数:24  
标签:调用 通用 onReady getBoundingClientRect 应用 组件 方法 rect

​【关键词】

快应用开发、通用方法、getBoundingClientRect

 

【背景】
快应用通用方法中提供了getBoundingClientRect方法来获取当前组件的布局位置,之前处理的快应用问题中,有个cp却把这种场景误解为可以获取到文字的宽度和高度,这是不合理的,当前快应用并没有提供可以获取文字高度和宽度的方法。那么今天我们就来具体学习一下getBoundingClientRect的使用。

 

【介绍】

1、调用方法:this.$element('xxx').getBoundingClientRect(Object object)

2、参数说明:

cke_565.png

3、回调成功返回值说明:

cke_1362.png

4、getBoundingClientRect调用的注意事项:

  • popup、option、span、picker 等组件不支持调用此方法。
  • 由于在onInit方法中组件还没有创建,所以在onInit方法中调用此方法会出现js错误。
  • 由于在onReady方法中组件还没有渲染完成,所以在onReady方法中调用此方法获取结果都为0。请勿在onReady之前和onReady中调用此方法。

 

【成果展示】

示例代码如下:

<template>
  <!-- Only one root node is allowed in template. -->
  <div class="container">
    <text id="origin-text" class="origin-text">测</text>
  </div>
</template>

<style>
  .container {
    flex-direction: row;
    justify-content: center;
    margin-top: 30px;
  }
  .origin-text {
    width: 80px;
    font-size: 60px;
    height: 80px;
    font-weight: 500;
    border: 1px solid #000000;
  }
</style>

<script>
  module.exports = {
    data: {
      rect: {}
    },
    onInit() {
      this.$page.setTitleBar({
        text: 'getBoundingClientRect',
        textColor: '#ffffff',
        backgroundColor: '#007DFF',
        backgroundOpacity: 0.5,
        menu: true
      });
    },
    onShow() {
      var that = this;
      that.$element('origin-text').getBoundingClientRect({
        success: function (data) {
          that.rect = JSON.stringify(data);
          console.log(that.rect, 'rect');
        },
        fail() {
          console.log(`Failed to getBoundingClientRect`);
        }
      });
    },
  }
</script>

展示及打印如下:

cke_3761.png

cke_4645.png

如上所示,这里我们获取到的宽度和高度是我们为这个组件设置的宽度和高度,并不是这个文字的宽度和高度,而且我会发现这个值还会有精度误差,这是正常的。

标签:调用,通用,onReady,getBoundingClientRect,应用,组件,方法,rect
From: https://www.cnblogs.com/mayism123/p/17587655.html

相关文章

  • 和鲸 ModelWhale 与海光适配认证,双轮驱动信创生态建设及 AI 产业应用
    从ChatGPT的发布到大模型浪潮的兴起,当前全球正值AI产业发展的窗口期,其背后是对平台化基础设施和算力的爆炸性增长需求,而信创作为我国信息技术发展的核心力量,其生态建设可为AI等新兴技术的全面应用搭建坚实底座。在此关键节点,信创产业链的各厂商做好上下游融合,联合形成产业化......
  • 进程、线程与协程:并发执行的三种重要概念与应用
    在计算机科学中,进程、线程和协程是实现并发执行的三种重要概念。它们是计算机系统中的核心组成部分,为多任务处理和资源共享提供了有效的解决方案。本文将深入探讨进程、线程和协程的概念、特点及它们在并发编程和系统设计中的应用,帮助读者全面理解并发执行的原理和实践。进程的概念......
  • UPS设备在物流机房中的应用浅析
    1UPS简介UPS即不间断电源(UninterruptiblePowerSupply),是一种含有储能装置的不间断电源。主要用于给部分对电源稳定性要求较高的设备,提供不间断的电源。当市电输入正常时,UPS将市电稳压后供应给负载使用,此时的UPS就是一台交流式电稳压器,同时它还向机内电池充电;当市电中......
  • 数据结构中队列的存储和应用
    队列:只有两个口进出数据,一个专门进入数据,另一个专门出数据,先进先出,FIFO表 一、顺序队列:存储元素的连续内存的首地址容量队头位置(出队)队尾位置(入队)[元素数量]运算:创建、销毁、清空、出队、入队、队空、队满、队头、队尾、元素数量#inclu......
  • .net通用RSA加密工具类
    目前最流行的加密算法莫过于RSA了,以下是我们.net/.netcoreC#生成环境用的RSA加密工具类,在此分享给大家。usingSystem;usingSystem.IO;usingSystem.Security.Cryptography;usingSystem.Text;namespaceCommon{///<summary>///RSA加密工具类///</su......
  • 有状态的应用如何部署 1?
    前面我们分享很多关于K8S的内容,有没有发现pod都是无状态,RS/RC管理的pod也是无状态的,我们可以任意删除一个pod,副本管理器又会马上给我们创建一个pod那么如果咱们的这个pod是有挂载持久卷的,那么我们用老方法可还行?有状态和无状态简单说明一下,什么是有状态的服务,什......
  • 树状数组的扩展应用
    「观前提醒」「文章仅供学习和参考,如有问题请在评论区提出」目录O(N)建树方法一方法二维护区间和单点修改,区间查询区间修改,单点查询区间修改,区间查询维护二维子矩阵和(二维树状数组)单点修改,子矩阵查询子矩阵修改,单点查询子矩阵修改,子矩阵查询求逆序对个数求数列中小于x的元......
  • 蒙特卡洛积分-重要性采样原理及其应用
    我自己是数学菜逼,所以我在学习数学之类的内容的时候,我基本上会去找视频看,虽然视频比较耗时间,但数学真的很难,没办法,菜逼一个。好在在b站上找到一位数学老师有这个视频讲解,真的救命呀!!!放下视频链接https://www.bilibili.com/video/BV17D4y1o7J2?p=1&vd_source=4451d7e9f1ccf3c1318002......
  • 如何用DHTMLX组件为Web应用创建甘特图?(一)
    dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。甘特图仍然是项目管理应用程序中最需要的工具之一,DHTMLXGantt组件提供了能提升研发甘特图功能所需的重要工具。在这篇文章中,您将学习如何添加一个基本......
  • Mongodb的部署和应用
    1、MongoDB的作用和优势 1)MongoDB 存储的是关系数据 读写速度快 2)特点  面向集合存储数据,Mongodb不在包含表信息 支持动态查询、索引、类SQL语言进行管理 采用二进制数据进行存储 支持Python、Java、php、javascript、C++2、Mongodb支持的应用场景和不适合场......