Coder Social home page Coder Social logo

nilportugues / progressively Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nilopc-interesting-reactjs/progressively

0.0 2.0 0.0 6 MB

A JavaScript library to load images progressively πŸŒ‡

Home Page: https://thinker3197.github.io/progressively

License: MIT License

JavaScript 79.28% CSS 20.72%

progressively's Introduction

Progressively

Progressively is a javascript library for loading images progressively. It’s written entirely in JavaScript so it doesn’t depend on 3rd-party libraries like jQuery. It's super small, < 1.2kB when minified & gzipped! It will load the full-size images only when the user browses to that part of the page, saving bandwidth & server requests. It is compatible with all modern browsers. See the Demo.

demo-image

Usage & Api

Installation

bower install progressively
npm install progressively
<head>
  <link src="progressively.min.css">
</head>
<body>

  <figure class="progressive">
    <img class="progressive__img progressive--not-loaded" data-progressive="img/highQualityImg" src="img/lowQualityImg">
  </figure>

  <script src="progressively.min.js"></script>
  <script>
    progressively.init(options);
  </script>
</body>

The src attribute will contain the lower quality image (< 20kb for ideal cases) and data-progressive attribute will hold the path/url to high quality image. See demo for examples.

.init() (options)

The init() API has a few options

throttle

Type: Number Default: 300

The throttle is managed by an internal function that prevents performance issues from continuous firing of window.onscroll events. Using a throttle will set a small timeout when the user scrolls and will keep throttling until the user stops. The default is 300 milliseconds.

delay

Type: Number Default: 100 value

The delay function sets the timout value for images to start load asynchronously. Ideally it's value should be low.

onloadComplete

Type: Function Arguments: None

The afterload function is callback function which executes when all images have loaded. It is fired when all the image elements have the *--is-loaded class.

onload

Type: Function Arguments: HTMLElement

The imgload function is invoked whenever an image elements finishes loading. It accepts HTMLElement as an argument which is the current element that is loaded.

progressively.init({
  delay: 50,
  throttle: 300,
  imgload: function(elem) {
    console.log(elem);
  },
  afterload: function() {
    console.log('All images have finished loading!');
  }
});

.render()

Progressively has a render() method that can be used to make progressively poll your images when you're not scrolling. For instance in some case you want to render your images before/widthout scrolling down to the image, you can use render

Contributing

Make sure you follow linting guidelines. For bugs or feature request, open an issue. Create a seprate branch by the name of your feature request and then send PR.

License

MIT license

progressively's People

Contributors

thinker3197 avatar nahid avatar jezmck avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.