0.2.1 • Published 6 years ago

vue-lazing v0.2.1

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

vue-lazing npm bundle size (minified + gzip) npm

A lazy loading component work with Vue.js 2, and based on IntersectionObserver.

Installing

# npm
npm i vue-lazing --save

or

# yarn
yarn add vue-lazing

Usage

  • Install plugin.
import Vue from 'vue'
import VueLazing from 'vue-lazing'
Vue.use(VueLazing)
  • Use <vue-lazing> components. Optionally, you can pass 3 kinds of parameters to control how to lazy loading.
<!-- in single component file using default options -->
<template>
  <vue-lazing :threshold="0.5">
    <img data-src="/1.png" src="/default.png">
    <img data-src="/2.png" src="/default.png">
    <img data-src="/3.png" src="/default.png">
    <div>some other elements<div>
    <img data-src="/4.png" src="/default.png">
    <img data-src="/5.png" src="/default.png">
    <img data-src="/6.png" src="/default.png">
    <img data-src="/7.png" src="/default.png">
  </vue-lazing>
</template>

Once target <img> element's visibility is over threshold value, target's src will be replaced by data-src attribute.

API

All API is based on IntersectionObserver. There are more practical experiences.

OptionsTypeDefaultDescription
rootHTMLElementnull ( means viewport )The element that is used as the viewport for checking visibility of the target. Must be the ancestor of the target.
rootMarginString0pxMargin around the root.
thresholdNumber0.1 (means 10%)A number indicate at what percentage of the target's visibility the replace runner should be executed.

Compatibility

You can check IntersectionObserver compatibility from here, and there is a polyfill for unsupporting browsers.

Changelog

Changelog