uni-app中 uni.createIntersectionObserver 无效
uni-app中 uni.createIntersectionObserver 无效
产品分类 | PC开发环境操作系统 | PC开发环境操作系统版本号 | HBuilderX类型 | HBuilderX版本号 | 浏览器平台 | 浏览器版本 | 项目创建方式 |
---|---|---|---|---|---|---|---|
uniapp/H5 | Windows | 22621.3447 | 正式 | 3.99 | Edge | 124.0.2478.67 | HBuilderX |
bug描述:
<template>之下有注释uni.createIntersectionObserver就失效, 或者 有page-meta节点也失效。
```javascript
<template>
<!-- 这里有注释uni.createIntersectionObserver就失效 -->
<view>
<page-head :title="title"></page-head>
<view class="uni-padding-wrap uni-common-mt">
<view class="uni-title uni-common-mt">
{{appear ? '小球出现' : '小球消失'}}
</view>
<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>
<template>
<page-meta root-font-size="16px"></page-meta>
<view>
<page-head :title="title"></page-head>
<view class="uni-padding-wrap uni-common-mt">
<view class="uni-title uni-common-mt">
{{appear ? '小球出现' : '小球消失'}}
</view>
<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>
示例代码:
<template> <view> <page-head :title="title"></page-head> <view class="uni-padding-wrap uni-common-mt"> <view class="uni-title uni-common-mt"> {{appear ? '小球出现' : '小球消失'}} </view> <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, title:'intersectionObserver' } }, 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> .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; } .notice { margin-top: 150rpx; margin: 150rpx 0 400rpx 0; } .ball { width: 200rpx; height: 200rpx; background: #4cd964; border-radius: 50%; } </style>
### 操作步骤:
代码如上
预期结果:
代码如上
### 实际结果:
代码如上
更多关于uni-app中 uni.createIntersectionObserver 无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复