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

@area17/a17-lazyload

v0.1.7

Published

A simple, tiny, no dependency, lazy loader - by A17

Downloads

88

Readme

A17 Lazy Load

Introduction

A straight forward lazy loader using IntersectionObserver if available and if not, it uses a requestAnimationFrame loop if available. If neither are available it does nothing.

When a watched element is in the view port it swaps data-src/data-srcset on img, source and iframe to src/srcset. It also adds a load listener and removes the data- attribute on load to allow you to hook styles up to the two different states.

If data-srcset to srcset and typeof picturefill, attempts to run picturefill() on the element.

When it runs out of elements to watch, the loop ends.

More detailed instructions on usage are at: https://area17.github.io/lazyload/

Usage

<script src="path/to/a17-lazyload.min.js"></script>
<script>
  lazyload();
</script>

Also available via NPM:

npm install @area17/a17-lazyload
import lazyload from '@area17/a17-lazyload';

lazyload();

Issues/Contributing/Discussion

If you find a bug in a17-lazyload, please add it to the issue tracker or fork it, fix it and submit a pull request for it (👍).

The development script is dist/a17-lazyload.js. Tabs are 2 spaces, functions are commented, variables are camel case and its preferred that its easier to read than outright file size being the smallest possible.

Make sure to include a minified version inside of dist by running: npm run minify (you'll need to npm run install to install terser). The minified version is added to the git repository for users who aren't using build tools.

Support

IE10+ because of the use of requestAnimationFrame if no IntersectionObserver.

Coming soon

Filesize

  • ~8kb uncompressed
  • ~3kb minified
  • ~1kb minified and gzipped