Description
Echo is a standalone JavaScript lazy-loading image micro-library. Echo is fast, 2KB, and uses HTML5 data-* attributes for simple. Check out a demo. Echo works in IE8+.
echo alternatives and similar libraries
Based on the "Misc" category.
Alternatively, view echo alternatives based on common mentions on social networks and blogs.
-
picturefill
A responsive image polyfill for <picture>, srcset, sizes, and more -
list.js
The perfect library for adding search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on existing HTML. -
InversifyJS
A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript. -
Autotrack
Automatic and enhanced Google Analytics tracking for common user interactions on the web. -
mixitup
A high-performance, dependency-free library for animated filtering, sorting, insertion, removal and more -
surveyjs
Free Open-Source JavaScript form builder library with integration for React, Angular, Vue, jQuery, and Knockout that lets you load and run multiple web forms, or build your own self-hosted form management system, retaining all sensitive data on your servers. You have total freedom of choice as to the backend, because any server + database combination is fully compatible. -
grid
Drag and drop library for two-dimensional, resizable and responsive lists -
json3
A modern JSON implementation compatible with nearly all JavaScript platforms. -
Selectable
Touch enabled selectable plugin inspired by the jQuery UI widget. -
Dandy UI
Minimalistic UI (boxes, colored text, menu and some more) for Node.js
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of echo or a related project?
Popular Comparisons
README
Echo.js 
Echo is a standalone JavaScript lazy-loading image micro-library. Echo is fast, 2KB, and uses HTML5 data-* attributes for simple. Check out a demo. Echo works in IE8+.
bower install echojs
npm install echo-js
Using Echo.js is simple, to add an image directly into the page simply add a data-echo
attribute to the img tag. Alternatively if you want to use Echo to lazy load background images simply add a `data-echo-background' attribute to the element with the image URL.
<body>
<img src="img/blank.gif" alt="Photo" data-echo="img/photo.jpg">
<script src="dist/echo.js"></script>
<script>
echo.init({
offset: 100,
throttle: 250,
unload: false,
callback: function (element, op) {
console.log(element, 'has been', op + 'ed')
}
});
// echo.render(); is also available for non-scroll callbacks
</script>
</body>
.init() (options)
The init()
API takes a few options
offset
Type: Number|String
Default: 0
The offset
option allows you to specify how far below, above, to the left, and to the right of the viewport you want Echo to begin loading your images. If you specify 0
, Echo will load your image as soon as it is visible in the viewport, if you want to load 1000px below or above the viewport, use 1000
.
offsetVertical
Type: Number|String
Default: offset
's value
The offsetVertical
option allows you to specify how far above and below the viewport you want Echo to begin loading your images.
offsetHorizontal
Type: Number|String
Default: offset
's value
The offsetHorizontal
option allows you to specify how far to the left and right of the viewport you want Echo to begin loading your images.
offsetTop
Type: Number|String
Default: offsetVertical
's value
The offsetTop
option allows you to specify how far above the viewport you want Echo to begin loading your images.
offsetBottom
Type: Number|String
Default: offsetVertical
's value
The offsetBottom
option allows you to specify how far below the viewport you want Echo to begin loading your images.
offsetLeft
Type: Number|String
Default: offsetVertical
's value
The offsetLeft
option allows you to specify how far to left of the viewport you want Echo to begin loading your images.
offsetRight
Type: Number|String
Default: offsetVertical
's value
The offsetRight
option allows you to specify how far to the right of the viewport you want Echo to begin loading your images.
throttle
Type: Number|String
Default: 250
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 250
milliseconds.
debounce
Type: Boolean
Default: true
By default the throttling function is actually a debounce function so that the checking function is only triggered after a user stops scrolling. To use traditional throttling where it will only check the images every throttle
milliseconds, set debounce
to false
.
unload
Type: Boolean
Default: false
This option will tell echo to unload loaded images once they have scrolled beyond the viewport (including the offset area).
callback
Type: Function
The callback will be passed the element that has been updated and what the update operation was (ie load
or unload
). This can be useful if you want to add a class like loaded
to the element. Or do some logging.
echo.init({
callback: function(element, op) {
if(op === 'load') {
element.classList.add('loaded');
} else {
element.classList.remove('loaded');
}
}
});
.render()
Echo's callback render()
can be used to make Echo poll your images when you're not scrolling, for instance if you've got a filter layout that swaps images but does not scroll, you need to call the internal functions without scrolling. Use render()
for this:
echo.render();
Using render()
is also throttled, which means you can bind it to an onresize
event and it will be optimised for performance in the same way onscroll
is.
Manual installation
Drop your files into your required folders, make sure you're using the file(s) from the dist
folder, which is the compiled production-ready code. Ensure you place the script before the closing </body>
tag so the DOM tree is populated when the script runs.
Configuring Echo
Add the image that needs to load when it's visible inside the viewport in a data-echo
attribute:
<img src="img/blank.gif" alt="Photo" data-echo="img/photo.jpg">
Contributing
In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Gulp.
License
MIT license
*Note that all licence references and agreements mentioned in the echo README section above
are relevant to that project's source code only.