IntersectionObserver.observe

2020-08-22 10:40 更新

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

方法参数

String targetSelector, Function callback

targetSelector  参数说明:选择器。
callback  参数说明:监听相交状态变化的回调函数。
callback  返回参数说明

属性类型说明

intersectionRatio

Number

相交比例

intersectionRect

Object

相交区域的边界

boundingClientRect

Object

目标边界

relativeRect

Object

参照区域的边界

time

Number

相交检测时的时间戳

intersectionRect 参数说明

属性类型说明

left

Number

左边界

right

Number

右边界

top

Number

上边界

bottom

Number

下边界

width

Number

相交区域的宽度

height

Number

相交区域的高度

boundingClientRect 参数说明

属性类型说明

left

Number

左边界

right

Number

右边界

top

Number

上边界

bottom

Number

下边界

width

Number

目标宽度

height

Number

目标高度

relativeRect 参数说明

属性类型说明

left

Number

左边界

right

Number

右边界

top

Number

上边界

bottom

Number

下边界

示例 

在开发者工具中打开


图片示例



代码示例

<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="list-area border-bottom">
        <view class="list-item-key-4">top:</view>
        <view class="list-item-value">{{intersectionRect.top}}</view>
    </view>
    <view class="list-area border-bottom">
        <view class="list-item-key-4">right:</view>
        <view class="list-item-value">{{intersectionRect.right}}</view>
    </view>
    <view class="list-area border-bottom">
        <view class="list-item-key-4">bottom:</view>
        <view class="list-item-value">{{intersectionRect.bottom}}</view>
    </view>
    <view class="list-area border-bottom">
        <view class="list-item-key-4">left:</view>
        <view class="list-item-value">{{intersectionRect.left}}</view>
    </view>
    <view class="list-area border-bottom">
        <view class="list-item-key-4">width</view>
        <view class="list-item-value">{{intersectionRect.width}}</view>
    </view>
    <view class="list-area border-bottom">
        <view class="list-item-key-4">height</view>
        <view class="list-item-value">{{intersectionRect.height}}</view>
    </view>
</view>
Page({
    data: {
        intersectionRect: ''
    },
    onReady() {
        swan.createIntersectionObserver(this)
            .relativeTo('.scroll-view')
            .observe('.ball', res => {
                this.setData('intersectionRect', res.intersectionRect);
                console.log(res.intersectionRect.left); // 相交区域的左边界坐标
                console.log(res.intersectionRect.right); // 相交区域的右边界坐标
                console.log(res.intersectionRect.top); // 相交区域的上边界坐标
                console.log(res.intersectionRect.bottom); // 相交区域的下边界坐标
                console.log(res.intersectionRect.width); // 相交区域的宽度
                console.log(res.intersectionRect.height); // 相交区域的高度
            });
    }
});


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号