IntersectionObserver.disconnect

与页面显示区域的相交区域并不准确代表用户可见的区域,因为参与计算的区域是“布局区域”,布局区域可能会在绘制时被其他节点裁剪隐藏(如遇祖先节点中 overflow 样式为 hidden 的节点)或遮盖(如遇 fixed 定位的节点)。 解释:停止监听,回调函数将不再触发。

方法参数

示例

在开发者工具中预览效果

扫码体验

请使用百度APP扫码

图片示例

代码示例

  1. <view class="wrap"> <scroll-view class="scroll-view" scroll-y> <view class="scroll-area" style="{{appear ? 'background: #ccc' : ''}}"> <text class="notice">向下滚动让小球出现</text> <!-- 占位元素 --> <view class="filling"></view> <!-- 小球 --> <view class="ball"></view> </view> </scroll-view> <view class="result-item border-bottom"> <view class="result-keyword">top</view> <view class="result-value">{{data.top}}</view> </view> <view class="result-item border-bottom"> <view class="result-keyword">right</view> <view class="result-value">{{data.right}}</view> </view> <view class="result-item border-bottom"> <view class="result-keyword">bottom</view> <view class="result-value">{{data.bottom}}</view> </view> <view class="result-item"> <view class="result-keyword">left</view> <view class="result-value">{{data.left}}</view> </view> <view class="result-item"> <view class="result-keyword">width</view> <view class="result-value">{{data.width}}</view> </view> <view class="result-item"> <view class="result-keyword">height</view> <view class="result-value">{{data.height}}</view> </view> <button type="primary" bindtap="disconnect">停止监听</button></view>
  1. Page({ data: { data: '' }, onReady() { const intersectionObserver = swan.createIntersectionObserver(this,{ selectAll: true }); intersectionObserver.relativeTo('.scroll-view').observe('.ball', res => { this.setData('data', res.intersectionRect); console.log(res.intersectionRect.left); // 相交区域的左边界坐标 console.log(res.intersectionRect.top); // 相交区域的上边界坐标 console.log(res.intersectionRect.width); // 相交区域的宽度 console.log(res.intersectionRect.height); // 相交区域的高度 }); this.intersectionObserver = intersectionObserver; }, disconnect() { this.intersectionObserver && this.intersectionObserver.disconnect(); }});