New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@autots/lazyload

Package Overview
Dependencies
Maintainers
7
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@autots/lazyload

A LazyLoad lib implemented through IntersectionObserver API

latest
Source
npmnpm
Version
1.2.1
Version published
Maintainers
7
Created
Source

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.

Keywords

lazy

FAQs

Package last updated on 15 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts