当前位置: 首页 > 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的文档地址


http://www.mrgr.cn/news/1876.html

相关文章:

  • 华三(H3C)UIS3030 Uni-R4900服务器硬件监控指标解读
  • 工业匠芯 | 匠芯创科技工业级芯片D21X、D13X、D12X、G73X选型应用
  • Conditional Flow Matching: Simulation-Free Dynamic Optimal Transport论文阅读笔记
  • 照片整理专家,照片整理大师,照片图库整理,智能图片整理软件
  • GEC6818开发板的学习
  • 【微信小程序】自定义组件 - 组件的生命周期
  • Python实现GAN(生成对抗网络)图像修复算法
  • re模块入门教程
  • 花几千上万学习Java,真没必要!(四十六)
  • 【Linux操作系统】基础IO
  • 大数据-86 Spark 集群 WordCount 用 Scala Java 调用Spark 编译并打包上传运行 梦开始的地方
  • SQL 时间盲注 (injection 第十五关)
  • leetcode 堆栈(栈+优先队列)——java实现
  • 牛客网SQL进阶129 :月均完成试卷数不小于3的用户
  • spring(1)
  • Hadoop 中的大数据技术:调优篇(2)
  • 0815,析构函数,拷贝构造函数,赋值运算符函数
  • 异构数据同步 datax (2)-postgres 写扩展
  • AI小白福音来啦~Flux文生图,支持手部细节,直出精美图像,让你瞬间变高手!
  • 深度学习基础—动量梯度下降法