当前位置: 首页 > news >正文

uniapp中节点信息的使用

uni.createSelectorQuery() 需要在生命周期 mounted 后进行调用

返回一个 SelectorQuery 对象实例。可以在这个实例上使用 select 等方法选择节点,并使用 boundingClientRect 等方法选择需要查询的信息。

// util.js
// 封装获取dom的方法并导出使用
export function warpRectDom(idName) {return new Promise(resolve => {setTimeout(() => { // 延时确保dom已渲染, 不使用$nextclicklet query = uni.createSelectorQuery();// #ifndef MP-ALIPAYquery = query.in(this) // 支付宝小程序不支持in(this),而字节跳动小程序必须写in(this), 否则都取不到值// #endifquery.select('#' + idName).boundingClientRect(data => {resolve(data)}).exec();}, 20)})
}

导入到vue的文件中使用

<template>
<view class="container" id="contId">内容文本
</view>
</template>
<script>
import { warpRectDom } from '@/utils/auth.js';
export default {data() {return {}},async onReady() {const contRes = await this.warpRectDom('contId');// navBgRes.height// id	String	节点的 ID// dataset	Object	节点的 dataset// left	Number	节点的左边界坐标// right	Number	节点的右边界坐标// top	Number	节点的上边界坐标// bottom	Number	节点的下边界坐标// width	Number	节点的宽度// height	Number	节点的高度// 如果元素未获取到,使用nextTick去延迟获取dom即可this.$nextTick(async () => {const contRes = await this.warpRectDom('contId');});},methods: {warpRectDom,},}
</script>

点击uniapp的文档地址

uni.createIntersectionObserver([this], [options]) 用于监听俩个区域相交可见的事件使用

节点布局交叉状态 API 可用于监听两个或多个组件节点在布局位置上的相交状态;
应用: 可用于可设区域的呈现监听埋点,或与触底的事件相结合使用(减少使用scroll的计算,减少损耗)

<template><view class="container"><text>{{appear ? '小球出现' : '小球消失'}}</text><view class="page-section"><scroll-view class="scroll-view" scroll-y><view class="scroll-area"><text class="notice">向下滚动让小球出现</text><view class="ball"></view></view></scroll-view></view></view>
</template>
<script>let observer = null;export default {data() {return {appear: false}},onReady() {observer = uni.createIntersectionObserver(this);observer.relativeTo('.scroll-view').observe('.ball', (res) => {if (res.intersectionRatio > 0 && !this.appear) {this.appear = true;} else if (!res.intersectionRatio > 0 && this.appear) {this.appear = false;}})},onUnload() {if (observer) {observer.disconnect()}}}
</script>
<style>view,page {display: flex;flex-direction: column;}.scroll-view {height: 400rpx;background: #fff;border: 1px solid #ccc;box-sizing: border-box;}.scroll-area {height: 1300rpx;display: flex;flex-direction: column;align-items: center;transition: .5s;}.notice {margin-top: 150rpx;margin: 150rpx 0 400rpx 0;}.ball {width: 200rpx;height: 200rpx;background: #1AAD19;border-radius: 50%;}
</style>

点击uniapp的文档地址

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用Dynamic Provision的PV需要Kubernetes集群管理员和用户分别做什么?
  • 3个常用zip压缩包文件打来密码删除方法
  • linux中cd的命令
  • Docker 是什么?
  • 【Linux 驱动】IMX6ULL gpio驱动
  • sqlserver 消息 9420,级别 16,状态 1,第 7 行
  • 计算机二级Python经典易错题和题解
  • vue+elmentui 定义狂拽黑金配色的按钮+消息框
  • 如何在 Kubernetes 上快速部署 Python 和 Laravel 应用:一站式 DevOps 集成指南
  • 18.1 使用python进行网络请求与数据解析
  • Linux查看占用内存或者CPU前10的命令
  • Java参数校验(最佳实践)
  • 2024.8.19(静态文件共享、playbook)
  • Python进阶必看:深入解析yield的强大功能
  • Leetcode面试经典150题-15.三数之和
  • hexo+github搭建个人博客
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • jquery ajax学习笔记
  • Linux下的乱码问题
  • mysql 数据库四种事务隔离级别
  • node 版本过低
  • quasar-framework cnodejs社区
  • React+TypeScript入门
  • V4L2视频输入框架概述
  • vuex 学习笔记 01
  • 基于遗传算法的优化问题求解
  • 聚类分析——Kmeans
  • 强力优化Rancher k8s中国区的使用体验
  • 我从编程教室毕业
  • 追踪解析 FutureTask 源码
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​​​​​​​​​​​​​​Γ函数
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • # Java NIO(一)FileChannel
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • (07)Hive——窗口函数详解
  • (C#)获取字符编码的类
  • (day 12)JavaScript学习笔记(数组3)
  • (libusb) usb口自动刷新
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (八)Flask之app.route装饰器函数的参数
  • (补)B+树一些思想
  • (二)JAVA使用POI操作excel
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (利用IDEA+Maven)定制属于自己的jar包
  • (转)ObjectiveC 深浅拷贝学习
  • .axf 转化 .bin文件 的方法
  • .gitignore文件—git忽略文件
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net6 webapi log4net完整配置使用流程
  • .net项目IIS、VS 附加进程调试
  • /tmp目录下出现system-private文件夹解决方法