vue-cooler-exposure
v1.0.2
Published
[![npm version](https://img.shields.io/npm/v/vue-cooler-exposure.svg?style=flat-square)](https://www.npmjs.com/package/vue-cooler-exposure) [![npm downloads](https://img.shields.io/npm/dm/vue-cooler-exposure.svg?style=flat-square)](https://www.npmjs.com/p
Downloads
2
Maintainers
Readme
vue-cooler-exposure
A vue plugin used to exposure elements and record data. Here are the advantages:
- Be lighterweight, just do one thing is that exposure elements
- use the browser native API Intersectionobserver, better performance
- offer hooks which you can deal with the data of elements exposured
Demo
npm install
npm run dev
Requirements
- Vue 2.x
Installation
npm
npm install vue-cooler-exposure
Usage
main.js:
import Vue from 'vue';
import exposurePlugin from 'vue-cooler-exposure';
Vue.use(lazyloadPlugin);
// you can get $exposure in the prototype of Vue and Vue instance.
// register callback which would be called when visibility of some element has changed.
Vue.prototype.$exposure.addAfterRecordCallback
(exposureList => {
console.log(exposureList);
// upload exposureList or some ...
})
template:
<div>
<img v-exposure="data1" />
<div v-exposure="data2"></div>
</div>
v-exposure would set the data, which you could get it in the callback args, in the element.
Plugin Options
|key|description|default|options| |---|-----------|-------|-------| |border|the viewport you want to listen|{top: 0, bottom: 0, left: 0, right: 0}(window)|{top, bottom, left, right}| |threshold|the proportion of element insert into viewport|1(1 means that when a whole element go into the viewport, callback would be excuted)|0~1| |delay|a delay time for debounce(unit: ms)|800|number|
APIs
|key|description|default param|type| |---|-----------|-------|-------| |addAfterRecordCallback|when visibility of some element has changed, it would be called and the arg is the list of data which elements in viewport take.|null|(exposureList): void| |exposureCheck|call callback at once|no args|no args|
Compatibility
The compatibility of this plugin depends on compatibility of IntersectionObserver