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

insert-backgrounds

v0.3.0

Published

Asynchronously loads and inserts images as css background from the data-insert-background attribute

Downloads

21

Readme

insert-backgrounds 🖼

npm version

Asynchronously loads and inserts images as css background from the data-insert-background attribute, and gives an optional callback after each image has completed loading.

How does it work?

The plugin looks for the data-insert-background attribute on elements in the page and starts loading them one by one. After every image is loaded a callback function gets called returning the id of the element or the image url if there's no id.

Usage

HTML

Anywhere on your page use the data-insert-background attribute on any element with an image url. You can also insert the url dynamically with php for example. To use the callback function effectively on this plugin, give the element an id.

<div id="example-id" data-insert-background="http://example.com/your-image-url.jpg"></div>

Javascript

Example is in ES6 but should work with common js as well. Anywhere in your code (but at least after the DOM has loaded), call insertBackgrounds. First argument is the options array, which does nothing for now, so it's empty. Second function is the callback. In the example below we pass in an anonymous function. The id argument is the id of the element on which the data-insert-background attribute is found. If there's no id attribute, the image url itself gets passed.

import insertBackgrounds from 'insert-backgrounds';

document.addEventListener("DOMContentLoaded", () => {

    insertBackgrounds([], (id) => {
        switch(id) {
            case 'example-id': 
                // http://example.com/your-image-url.jpg is loaded and inserted!
                // Do stuff
                break;
            default:
                break;
        }        
    });

});

Why is this useful?

On the top of my head I can think of two things very useful about this.

  1. Dynamically loading a css background can be a hassle (albeit a small one). Usually I insert the image url in an attribute on the element (within php for example) and let some javascript insert the image as a css background. I use this for almost every project. This plugin automates that.

  2. If you're making a website I'm pretty sure you're hooking into window.onload or $(window).on('load', ...) somewhere, maybe to start an animation for example. Normally, when a page is loaded the browser waits till all images (and everything else) are loaded. Even the images at the bottom of the page that you do not yet care about, needlessly delaying the actions you want to perform. With the callback that gets called after every image is loaded, you can perform actions right when a certain image is loaded. This allows you to better control the loading flow and perform the actions that matter faster.

Copyright and license

Aw yiss, code released under MIT License. Have at it 🤘.