npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-lazy-media

v0.3.1

Published

Lazy load image, picture, video, and iframe media React components

Downloads

935

Readme

react-lazy-media

npm Build Status GitHub license

Lazy load image, picture, video, and iframe media React components. react-lazy-media uses yall-js under the hood to handle lazy loading.

Polyfilled with the Intersection Observer Polyfill

Installation and Usage:

npm i -S react-lazy-media

Include the Component:

import React from 'react'
import { LazyImage } from 'react-lazy-media'

class Component extends React.Component {

  render() {
    return (
      <LazyImage
        classes={['myLazyImage']}
        src={'./hero.png'}
      />
    );
  }
}

You can import LazyImage LazyVideo LazyIframe LazyBackground LazyWebpPicture respectively.

Component Examples

Common

The following APIs are shared by every component.

| Name | Type | Default | Description | | ------- | ------------- | ------- | ---------------------------------------------------------------------------------------- | | classes | Array | [] | Additional CSS classes (in addition to 'lazy' for the media element (img, video, iframe) | | id | string | '' | id for the media element (img, video, iframe) |

LazyImage

Lazy loads an image element. Supports loading a low-quality image placeholder.

| Name | Type | Default | Description | | ------ | ----------------- | ---------------- | ---------------------------------------------------------------------------------------------------- | | alt | string | [] | Alt text for the img | | src | string (Required) | N/A - Required | src for the img | | width | string | '' | width for the img | | height | string | '' | height for the img | | lqip | string | '' | src for a loq quality image placeholder. will always be loaded and then replaced with actual src img |

LazyBackground

Lazy loads a background image for a div.

| Name | Type | Default | Description | | ---- | ----------------- | ---------------- | ---------------------------- | | src | string (Required) | N/A - Required | src for the background image |

LazyVideo

Lazy loads an HTML5 video.

| Name | Type | Default | Description | | -------- | ----------------- | ---------------- | -------------------------------------------------- | | src | string (Required) | N/A - Required | src for the video | | width | string | '' | width for the video | | height | string | '' | height for the video | | poster | string | '' | poster image for the video (before it loads/plays) | | controls | bool | true | whether or not the video should display controls | | preload | bool | false | whether or not the video should be preloaded | | autoplay | bool | false | whether or not the video should autoplay | | loop | bool | false | whether or not the video should loop | | muted | bool | false | whether or not the video should be muted |

LazyIframe

Lazy loads an iframe.

| Name | Type | Default | Description | | ---- | ----------------- | ---------------- | ------------------ | | src | string (Required) | N/A - Required | src for the iframe |

LazyWebpPicture

Lazy loads an HTML5 picture. Attempts to load a Webp version of the asset first, and falls back to original src. Most of the props are passed down to the LazyImage child of this component.

| Name | Type | Default | Description | | ------ | ----------------- | ---------------- | ---------------------------------------------------------------------------------------------------- | | alt | string | [] | Alt text for the img | | src | string (Required) | N/A - Required | src for the img | | width | string | '' | width for the img | | height | string | '' | height for the img | | lqip | string | '' | src for a loq quality image placeholder. will always be loaded and then replaced with actual src img | | webp | string | '' | The webp src for the img. Will suffix the src prop of not provided (e.g. hero.png => hero.png.webp) |

Todo

[] Add more configurable component: LazyPicture [] Add code example for each component in readme