IntersectionObserver.observe

解释:指定目标节点并开始监听相交状态变化情况

方法参数

String targetSelector, Function callback

targetSelector参数说明 :选择器

callback参数说明 监听相交状态变化的回调函数

回调结果说明

属性类型说明
intersectionRationumber相交比例
intersectionRectObject相交区域的边界
boundingClientRectObject目标边界
relativeRectObject参照区域的边界
timenumber相交检测时的时间戳

intersectionRect、boundingClientRect、relativeRect 结构说明

属性类型说明
leftnumber左边界
rightnumber右边界
topnumber上边界
bottomnumber下边界

示例

在开发者工具中预览效果

扫码体验

IntersectionObserver.observe - 图1请使用百度APP扫码

图片示例

IntersectionObserver.observe - 图2

IntersectionObserver.observe - 图3

IntersectionObserver.observe - 图4

代码示例

  1. <view class="wrap">
  2. <scroll-view class="scroll-view" scroll-y>
  3. <view class="scroll-area" style="{{appear ? 'background: #ccc' : ''}}">
  4. <text class="notice">向下滚动让小球出现</text>
  5. <!-- 占位元素 -->
  6. <view class="filling"></view>
  7. <!-- 小球 -->
  8. <view class="ball"></view>
  9. </view>
  10. </scroll-view>
  11. <view class="result-keyword">top: {{data.top}}</view>
  12. <view class="result-keyword">right: {{data.right}}</view>
  13. <view class="result-keyword">bottom: {{data.bottom}}</view>
  14. <view class="result-keyword">left: {{data.left}}</view>
  15. <view class="result-keyword">width: {{data.width}}</view>
  16. <view class="result-keyword">height: {{data.height}}</view>
  17. </view>
  1. Page({
  2. data: {
  3. data: ''
  4. },
  5. onReady() {
  6. swan.createIntersectionObserver(this, {
  7. selectAll: true
  8. })
  9. .relativeTo('.scroll-view')
  10. .observe('.ball', res => {
  11. this.setData('data', res.intersectionRect);
  12. console.log(res.intersectionRect.left); // 相交区域的左边界坐标
  13. console.log(res.intersectionRect.top); // 相交区域的上边界坐标
  14. console.log(res.intersectionRect.width); // 相交区域的宽度
  15. console.log(res.intersectionRect.height); // 相交区域的高度
  16. });
  17. }
  18. });