uni 中使用 vue3 写法 IntersectionObserver简单用法

uni-app微信小程序集成腾讯地图选点与城市选择器实战指南 地图与位置服务是现代移动应用的核心功能模块,其原理是通过GPS、基站或Wi-Fi信号获取设备的地理坐标,并结合地理信息系统(GIS)进行可视化与交互。在跨端开发框架中,如何高效、稳定地集成原生地图能力,是提升应用体验与工程效率的关键技术挑战。本文聚焦于**uni-app**微信小程序生态,深入解析如何利用**腾讯位置服务官方插件**,系统化地实现地图选点与城市选择两大高频功能。内容涵盖从插件选型、权限配置、坐标系处理,到搜索联想、逆地址解析、性能优化及多端兼容等全链路工程实践,为开发者提供一套可复用的解决方 阅读详情
AI摘要

本文介绍uni.createIntersectionObserver的基本用法,通过示例展示如何使用relativeTo、observe及disconnect方法来实现元素可见性的监测。

我们当前需要用到的方法是uni.createIntersectionObserver,创建后会包含4个方法

  • relativeTo(selector,[margins]) 使用选择器指定一个节点,作为参照区域之一

  • relativeToViewport([margins]) 指定页面显示区域作为参照区域之一

  • observe(selector,[callback]) 指定目标节点并开始监听相交状态变化情况。回调函数 callback 包含一个参数 result

  • disconnect() 停止监听。回调函数将不再触发

完整项目demo:https://gitee.com/hackchen/demo-collection/tree/master/front-end/uniapp/intersection-observer-demo

当前示例,我们用到3个方法,分别为relativeTo、observe、disconnect

完整代码如下:

<script setup>
import { ref,getCurrentInstance,onMounted } from 'vue'
import {onLoad, onUnload} from '@dcloudio/uni-app'

const observer = ref(null);
const appear = ref(false);
const instance = ref(null);
onMounted(() => {
  instance.value = getCurrentInstance();
  console.log('onMounted',instance.value)

  observer.value = uni.createIntersectionObserver(instance.value);
  // 如果 .ball 出现在 .scroll-view 可视区域,则执行回调
  observer.value
      .relativeTo('.scroll-view') // 第二个参数 定义相交边界 left top right bottom
      .observe('.ball', (res) => {
    console.log('createIntersectionObserver res',res)
    // res.intersectionRatio 0-1 相交比例 大于0 小球出现
    if (res.intersectionRatio > 0 && !appear.value) {
      appear.value = true;
    } else if (!res.intersectionRatio > 0 && appear.value) {
      appear.value = false;
    }
  })
})
onUnload(() => {
  observer.value.disconnect();
})
</script>

<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>

<style lang="scss" scoped>
.container {
  display: flex;
  flex-direction: column;
}

.scroll-view {
  height: 400rpx;
  background: #fff;
  border: 1px solid #ccc;
  box-sizing: border-box;
}

.scroll-area {
  height: 1800rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: .5s;
}

.notice {
  margin: 150rpx 0 400rpx 0;
}

.ball {
  width: 200rpx;
  height: 200rpx;
  background: #1AAD19;
  border-radius: 50%;
}
</style>

2025认证杯数学建模第二阶段B题完整论文(代码齐全):谣言在社交网络上的传播 这需要我们深入理解抽样检测所得的次品率的不确定性及其对生产决策的影响。对于问题二的决策分析,我们可将其细分为四个关键的决策节点,分别是零件 1 的质量检测、零件 2 的质量检测、成品的质量检测,以及成品检测不合格时的拆解处理。该策略的实施,保证了在算法迭代过程中,表现最为优异的个体能够得到保留,并顺利传递至下一代,从而保障了算法在寻求最优解过程中的收敛性和优化效果。因此,我们采用假设检验的方法,将次品分布构造成 t 分布,从而确定在相应置信度的条件下,抽样次数 n 和次品数 k 所需满足的要求。 阅读详情

相关推荐

嵌入式STM32控制电梯面板

嵌入式STM32控制电梯面板 用点阵来显示电梯向上还是向下运动,用数码管来显示楼层数(由于灯阵显示楼层数比较困难故用数码管代替)。当按下对应的按钮,就可以去到对应层数,可上升可下降。 #include "stm32f10x.h" #include "stm32f10x_exti.h" #include "stm32f10x_it.h" #define uint unsigned int #define KEY1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10) #define

code_init_的博客 2111

uniapp在小程序中使用createIntersectionObserver的问题

在小程序开发中,使用这个Api来实现埋点的数据上报,基本是相当精准的,而且不会对性能造成影响。

yangxun9264986的博客 4286

告别米级误差:手把手教你用Nordic nRF52840实现厘米级蓝牙测距(Channel Sounding实战)

本文详细介绍了如何利用Nordic nRF52840开发板和蓝牙信道探测(Channel Sounding)技术实现厘米级高精度测距。通过硬件配置、软件优化和实战案例,帮助开发者快速掌握低功耗蓝牙测距技术,适用于工业自动化、智能仓储等场景。

weixin_42741930的博客 478

uniapp小程序intersectionObserver实现列表图片懒加载

uniapp小程序intersectionObserver实现列表图片懒加载

fangfujiGG的博客 4843

四足机器人跨楼层轨迹规划:SCAN-Planner-Pure-ROS2开源项目实践指南

在机器人导航领域,路径规划是让机器人从起点安全、高效移动到目标点的核心技术。其原理通常基于环境地图(如占据栅格地图或八叉树地图),通过搜索算法(如A*、RRT*)在配置空间中找到一条无碰撞的可行路径。这项技术的价值在于赋予机器人在复杂、非结构化环境中的自主移动能力,是巡检、救援、物流等应用场景的基石。对于四足机器人而言,其运动能力超越了轮式平台,能在楼梯、斜坡等三维地形中移动,这使得传统的二维规划不再适用,需要专门的三维轨迹规划算法。SCAN-Planner-Pure-ROS2正是这样一个专注于解决四足机器

weixin_30700977的博客 466

哈希拓展攻击CTF题做法

kali下载相关工具hash-ext-attack:hash拓展题目特征:2023楚慧杯upload_shell实验吧之让我进去:前言:具体怎么加密解密补位的原理我不懂,深入理解的部分我在文末挂了链接,以下也只是我做题的结论和通解,可能不准确(但是做题还挺准确),有错误欢迎指出:是在密码加密过程中引入的一个随机值,它与密码结合使用,目的是增加密码的复杂性和安全性。在密码加密中,常见的做法是将用户提供的密码进行哈希处理,然后存储哈希值而不是明文密码

2301_76690905的博客 2420

uni-app uni.createIntersectionObserver在vue3的自定义组件中填坑

uni.createIntersectionObserver 在自定义组件中无法获取到对应的dom节点: uni.createIntersectionObserver().relativeTo('.consult_title').observe('#consultNotice', (res) => { //目前这种方式在开发者工具中会报 Node '.consult_title' is not found Node '#consultNotice' is not found }); 根据微信文档

初竹殇的博客 3250

ArduPilot飞控系统代码解读及架构分析

ArduPilot飞控系统是一个复杂而强大的系统,通过模块化设计和分层架构,实现了灵活的飞行控制功能。模块化设计: 各个功能模块相对独立,便于维护和扩展多种飞行模式: 满足不同的飞行需求强大的控制算法: 实现稳定的姿态和位置控制完善的安全机制: 保障飞行安全丰富的配置选项: 通过参数系统实现高度可定制性这种架构使ArduPilot能够适应从简单的多旋翼到复杂的自主飞行器等各种应用场景。类结构分析:Mode基类 (mode.h/mode.cpp)

fengforky的专栏 3019

记录微信小程序createIntersectionObserver()方法的使用

记录微信小程序createIntersectionObserver()方法的使用

qq_40236628的博客 6158

Quartus (Quartus Prime 18.1)的安装及仿真步骤

前两天做计组的课设需要用到Quartus 这个软件,但安装有点麻烦,在网上搜了很多教程,发现都是旧版本的,最后弄了好半天才把环境搭建好。所以,分享一下它的搭建过程。 因为我不经常用它,所以安装的版本是精简版的其他版本的也应该差不多以下是需要下载的安装包: 准备: Quartus Prime 精简版,最新发布: v18.1 1. QuartusLiteSetup-18.1.0.625-wi...

weixin_41082948的博客 8万+

C#解析基恩士(KEYENCE)PLC数据:KV协议通信与实时监控实现

KV协议是基恩士PLC使用的一种专用通信协议,通常用于与上位机进行数据交换。KV协议通过RS-232C、RS-485、Ethernet等接口与上位机通信,支持多种数据类型的读写,包括但不限于位、字、双字、浮点数等。简洁易用:KV协议的通信格式简单,易于实现。支持多种数据类型:支持位数据、字数据、定长字符串等。高效实时性:能够提供较高的实时数据交换性能,适合实时监控应用。本文介绍了如何通过C#与基恩士KV系列PLC进行通信,实现数据的解析和实时监控功能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1807

Uniapp的API:uni.createIntersectionObserver()之$el.querySelector is not a function报错问题解决

1.因为开发环境是vue3,个人没有对这个组件的模板设置一个根节点,使用该API一定要对所有的元素设置一个根节点!否则该API无法获取到el节点!Uniapp+vue3场景下,开发需求要得到某el节点到视口顶部的距离,从而使用该API:(项目需求封装进了promise)但是写好后,控制台却报错:TypeError: $el.querySelector is not a function。满足二者条件,$el.querySelector is not a function这个报错就不复存在了~

qq_18841969的博客 2664

k8s配置habor作为镜像地址之后,如果harbor中没有镜像,如何设置自动从阿里云官方镜像仓库下载

通过 Harbor 的远端仓库可以集中管理。如果你在上游设置了 image prefix 为 library,那么对外访问 harbor.your-domain.com/library/nginx:latest 就会被 Harbor 去上游拉取 registry.cn-hangzhou.aliyuncs.com/library/nginx:latest 并缓存。- 将集群中的镜像地址改为 Harbor 的域名,比如 harbor.your-domain.com/library/nginx:latest。

极客栈 425

基于vue3.0和IntersectionObserver封装懒加载指令

目的:当图片进入可视区域内去加载图片,且处理加载失败,封装成指令。

qq_46343149的博客 752

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SpringBoot3+Vue3+uni-app漫画平台多端开发实战指南

前后端分离架构是现代Web应用开发的核心模式,通过API接口实现数据交互。SpringBoot作为后端框架提供RESTful服务,Vue.js负责前端界面渲染,这种组合能够有效提升开发效率。在工程实践中,多端兼容性成为关键挑战,特别是微信小程序与H5平台的差异化适配。TypeScript类型系统为大型项目提供可靠的代码维护保障,通过严格的数据类型定义减少运行时错误。漫画阅读平台作为典型的内容型应用,需要重点解决图片加载性能、数据分页缓存等技术难点。本文基于SpringBoot 3、Vue 3和uni-app

weixin_33768481的博客 347

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

uni-app/uni-app x 组件相交监听实战:uni-createIntersectionObserver UTS 插件源码解析与使用指南

本篇技术指南围绕开源仓库中的 `uni-createIntersectionObserver` 插件展开,它实现了 uni-app/uni-app x 中"监听组件布局相交"的核心能力——即检测目标节点与参照区域(页面视口或指定节点)的相交状态变化。读完本文,你将掌握该 UTS 插件的目录组织规范、`createIntersectionObserver` 完整 API 的类型定义与参数语义、Har

gitblog_07148的博客 261

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

uni-app x uni.createIntersectionObserver 交叉观察器 API 完全指南:从参数到源码实现

uni.createIntersectionObserver 是 uni-app / uni-app x 中用于监听组件布局相交状态的 API,可精确感知某个目标节点与参照区域(页面视口或指定节点)的相交比例变化,广泛应用于曝光埋点、懒加载、吸顶判断与滚动动画触发等场景。本文以官方 API 文档为主体,结合仓库内 [uni-createIntersectionObserver 插件源码](http

gitblog_00318的博客 422

SpringBoot3+Vue3+uni-app构建漫画阅读平台:多端统一架构实战

前后端分离架构是现代Web应用开发的核心模式,通过将前端展示层与后端业务逻辑解耦,实现了开发效率与系统可维护性的双重提升。其技术原理基于RESTful API通信,前端负责用户交互界面渲染,后端专注数据处理和业务逻辑。这种架构的技术价值在于支持多端统一开发,一套后端服务可以同时支撑Web端、小程序端等多平台应用。在内容型应用场景中,前后端分离架构特别适合处理复杂的用户交互和海量数据展示需求。以漫画阅读平台为例,SpringBoot3提供高性能的后端服务,Vue3实现流畅的前端交互,uni-app则解决了微信

weixin_34194359的博客 335

uni-app图片列表性能优化实战

在移动端开发中,图片列表渲染是常见的高性能消耗场景。Vue的v-for指令结合组件化开发虽然提高了代码复用性,但在大数据量下容易引发性能问题。本文以uni-app框架为例,剖析了多层组件封装在列表渲染中的性能损耗原理,通过轻量化组件设计、分页加载策略和CDN图片预处理等技术手段,将图片列表的FPS从32提升至58,内存占用降低39%。特别针对u-image组件二次封装导致的卡顿问题,提供了直接基于原生image标签的优化方案,适用于各类图片展示类应用的性能优化场景。

weixin_30984001的博客 313

uni-app中onReachBottom不触发?详解页面级生命周期与组件通信方案

在uni-app这类跨端开发框架中,理解生命周期是高效调试的基石。页面滚动监听、触底加载等功能依赖onReachBottom这一页面级生命周期,它只在Page实例中生效,并不会被子组件接收。很多开发者将加载逻辑写入子组件,导致控制台静默无响应。本文剖析了onReachBottom的触发条件与常见失效场景,通过最小化Demo区分滚动机制与组件生命周期问题,并对比四种可靠解法:props下发展信号、全局事件总线、IntersectionObserver及scroll-view事件,最后给出可复用的滚动通知组件封

weixin_33164198的博客 261

Vue 3组件卸载机制与内存管理实践

组件生命周期管理是现代前端框架的核心概念,Vue 3通过响应式系统和Proxy实现了高效的资源回收机制。在组件卸载(unmounted)阶段,框架会自动解除响应式绑定、移除DOM事件监听器并清理异步任务队列,这种机制能有效防止内存泄漏。然而对于手动创建的定时器、WebSocket连接和第三方库实例等场景,开发者仍需遵循'谁创建谁清理'原则。特别是在使用全局事件监听器和图表库等场景时,必须显式调用removeEventListener和destroy方法。通过Chrome DevTools的内存快照分析和Pe

weixin_33881140的博客 419

Uni-app图片加载性能优化实战指南

图片加载性能是移动应用开发中的关键指标,直接影响用户体验和业务转化率。从技术原理看,现代图片加载涉及格式编解码、网络传输、内存管理等多个环节。通过智能选择WebP/AVIF等新型图片格式,结合CDN分级加速和懒加载技术,可显著提升加载速度并降低带宽消耗。在Uni-app等跨平台框架中,还需特别注意不同平台的渲染管线差异和内存管理策略。工程实践中,渐进式加载、骨架屏等优化手段能有效改善感知性能,而完善的监控体系则能持续驱动优化迭代。数据显示,合理的图片优化方案可使移动端加载速度提升78%,流量消耗降低66%,

weixin_30086969的博客 254

vue 路由懒加载,图片懒加载,组件懒加载

在上述示例中,v-lazy 指令用于指定需要懒加载的图片路径。当图片进入视口(viewport)时,vue-lazyload 会自动加载该图片,提升页面加载速度。在 Vue 3 中,可以使用 v-lazy 指令和 Intersection Observer 来实现图片的懒加载。在上述代码中,我们使用动态导入语法 import() 来异步加载路由组件。当路由被触发时,相应的组件将被动态加载并渲染。在上述代码中,我们将组件的 component 属性设为一个函数,当路由被触发时,对应的组件才会被动态加载。

m0_52704461的博客 471

MPVUE框架解析:Vue.js小程序开发实践指南

跨端开发框架是现代前端工程的重要解决方案,其中MPVUE作为基于Vue.js的小程序开发框架,通过运行时适配层和模板编译器实现了Vue到小程序的代码转换。其核心原理包括虚拟DOM映射、模板语法转换和样式处理,使开发者能够复用Vue生态的同时兼容小程序环境。在性能优化方面,MPVUE通过setData调用优化和代码分包技术提升运行效率,特别适合电商、内容平台等需要快速迭代的业务场景。结合webpack构建链和Vuex状态管理,MPVUE为小程序开发提供了完整的工程化解决方案。

cumo7370的博客 620

vue3中怎么注册全局的组件,全局注册组件,只需创建组件不需要引入。不需要每个组件都引入自动引入。全局自定义指令图片懒加载的代码。

vue3中怎么注册全局的组件,全局注册组件,只需创建组件不需要引入。不需要每个组件都引入自动引入。全局自定义指令图片懒加载的代码。

qq_54753561的博客 4018

uni-app+SpringBoot打造高效餐饮点餐小程序实战

小程序开发已成为餐饮行业数字化转型的核心技术方案,其依托微信生态的流量红利与即用即走特性,能有效提升门店运营效率。从技术实现角度看,采用uni-app跨端框架可快速构建多平台适配的前端应用,配合SpringBoot后端服务处理高并发订单业务。关键技术点包括flex布局适配、IntersectionObserver实现懒加载、Redis分布式锁解决超卖问题等。在餐饮场景中,这种架构特别适合处理堂食分流、会员营销、实时库存管理等需求,实测可使订单处理效率提升47%。通过合理的MySQL索引设计与多级缓存策略,系

weixin_34232744的博客 307
上一篇: uniapp中使用wx.reportEvent上报简单示例
下一篇: CSS3 立体投影 background hsl
hackchen
博客等级 码龄19年 193粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值