DEMO

DEMO

install

npm i vue-intersection-plugin -S
//or
yarn add vue-intersection-plugin

use

import vueIntersectionPlugin from "vue-intersection-plugin";
Vue.use(vueIntersectionPlugin, {
    handler: (logData)=> {
        // your logic code
    },
    duration: 3000, //在页面可视区域停留时长
    // threshold: []
});

// add directive
<YourComponent>
    <div
        v-intersection
        :data-log="JSON.stringify({
            //your log data
        })"
        >

    </div>
</YourComponent>

Documentation

配置参数

Vue.use(vueIntersectionPlugin, options)
prop value example default TIPS
root DOM element document.getElementById('#test') document 其他的容器没有测试
handler 满足曝光条件出发的回调 null
threshold dom元素在可视区域漏出多少 算曝光 [Array, Number] 0.5 or [0.5] 0.5 如果想要实现一进入可视区域就开始算曝光,你设置threshold:0 ,程序内部会将它充值成0.01
duration 在可视区域停留多长时间算曝光 [Number 单位毫秒] 1000 1000

指令参数

TODO

埋点数据

将埋点发送的数据绑定到要曝光统计的DOM元素或者是vue组件 data-log属性上

 <div
    v-intersection
    :data-log="JSON.stringify({
       module: 'test-a',
       productId: '0011'
    })"
    >
    <your-vue-component
        v-intersection
        :data-log="JSON.stringify({
           module: 'test-b',
           productId: '00111'
        })"
    />
</div>