1.2.1 • Published 4 years ago

@autots/lazyload v1.2.1

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

lazyload observer

A LazyLoad Lib implemented through IntersectionObserver API

Features

  • typescript features & compiled to vanilla js
  • original configuration of Intersection API
  • some custom lifecycle callback
  • support ie9+

Installing

Using npm:

$ npm install @autots/lazyload -S

Using yarn:

$ yarn add @autots/lazyload

Note: cdn is not supported at now, maybe you can deliver the file dist/lazyload.min.js to your own cdn server.

Example

1. ES Module

import LazyLoad from '@autots/lazyload';

// 1. The simplest way
new LazyLoad('img[data-lazyload]');

// 2. use a config object
new LazyLoad('img[data-lazyload]',  {
  attr: 'data-src2',          // default is `data-src`
  srcsetAttr: 'data-srcset2', // default is `data-srcset`
  root: null,                 // default
  rootMargin: '0px',          // default
  threshold: 0,               // default
  onLoad: function() {        // the callback when a img loaded
    // console.log(this, 'ooooh');
  },
  onError: function() {       // the callback when loaded error
    // console.log(this, 'errrr');
  },
  onAppear: function() {      // the callback when element trigger in appearance
    // console.log(this, 'appear');
  }
})

Browser Plugin

<script src="dist/lazyload.min.js"></script>

<script>
  new AutoTs.LazyLoad(el, config);
</script>

Online Demo

There is a global variable AutoTs, and LazyLoad property is the constructor.

API

new LazyLoad(el, config);
defaultConfig = {
  delay: -1,
  wait: 100,
  attr: 'data-src',
  srcsetAttr: 'data-srcset',
  removeAttr: true,
  defaultSrcVal: 'data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///////wAAACH5BAEHAAIALAAAAAABAAEAAAICVAEAOw==',
  placeholder: '',
  placeWidth: '100%',
  placeHeight: '100%',
  maxFailureNumber: 1,
}
NameTypeDefaultOptionalDescription
elstring | NodeListOf\<Element>--Nothe element(s) need lazy
configtypeof defaultConfigdefaultConfigYesAdvanced configuration

config

NameTypeDefaultDescription
rootElement | nullnullsame to IntersectionObserver.root
rootMarginstring'0px'same to IntersectionObserver.rootMargin
thresholdnumber | number[]0same to IntersectionObserver.threshold
attrstringdata-srcthe attr name which saves ImageElement src value
srcsetstringdata-srcsetthe attr name which saves ImageElement srcset value
delaynumber-1use setTimeout(fn, delay) to load all el
waitnumber100use setTimeout(fn, wait) to decide if the el is visible
removeAttrbooleantrueremove attr name (configed with attr & srcsetAttr)
defaultSrcValString | nullbase64the default value of img src attribute
placeholderString''the text/html content of placeholder for non-image el
placeWidthString'100%'the width of placeholder
placeHeightstring'100%'the height content of placeholder
onLoadFunction--callback when el loaded
onErrorFunction--callback when loaded error
onAppearFunction--callback when el trigger in appearance
maxFailureNumbenumber1after trigger onError maxFailureNumber times, will exec unobserve fn

Note: The el type should be String or NodeListOf<Element>, that is to say we recommend you to use CSS selector to set , or use querySelectorAll.

1.2.1

4 years ago

1.2.0

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago