Simple (Background) Image Loader Plugin With jQuery And CSS3 - loadImages.js
| File Size: | 7.67 KB |
|---|---|
| Views Total: | 1755 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
loadImages.js is a simple, lightweight jQuery plugin which displays a CSS3 based animated loader to indicate the image is loading and you have to still wait. Also supports background images. The plugin automatically generates a loading element appending to your image's container (its parent) while the image is downloading.
How to use it:
1. Put jQuery library and the jQuery loadImages.js script at the bottom of the html page.
<script src="//code.jquery.com/jquery-3.1.1.min.js"></script> <script src="build/js/loadImages.js"></script>
2. Call the function on the img tag and done.
$('img').loadImages();
3. Style the loading element in the CSS as follows:
.loading-img, .loading-img .box {
position: absolute;
left: 0;
top: 0
}
.loading-img {
background: #ddd;
display: inline-block;
width: 100%;
height: 100%;
z-index: 2
}
.loading-img .box {
width: 78x;
height: 78px;
right: 0;
bottom: 0;
margin: auto
}
.loading-img .loading:after, .loading-img .loading:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
border-radius: 50%
}
.loading-img .loading:before {
width: 35px;
height: 35px;
margin-top: -18px;
margin-left: -18px;
border-width: 2px 1px;
border-style: solid;
border-color: #000 rgba(0,0,0,.3);
-webkit-animation: spin 3.45s infinite;
-moz-animation: spin 3.45s infinite;
-o-animation: spin 3.45s infinite;
animation: spin 3.45s infinite
}
.loading-img .loading:after {
width: 6px;
height: 6px;
margin-top: -3px;
margin-left: -3px;
background-color: #000;
-webkit-animation: pulse 6.9s infinite, borderPulse 6.9s infinite;
-moz-animation: pulse 6.9s infinite, borderPulse 6.9s infinite;
-o-animation: pulse 6.9s infinite, borderPulse 6.9s infinite;
animation: pulse 6.9s infinite, borderPulse 6.9s infinite
}
@-webkit-keyframes
spin { 0% {
transform:rotate(0)
}
50% {
transform:rotate(360deg)
}
100% {
transform:rotate(1080deg)
}
}
@-moz-keyframes
spin { 0% {
transform:rotate(0)
}
50% {
transform:rotate(360deg)
}
100% {
transform:rotate(1080deg)
}
}
@-o-keyframes
spin { 0% {
transform:rotate(0)
}
50% {
transform:rotate(360deg)
}
100% {
transform:rotate(1080deg)
}
}
@keyframes
spin { 0% {
transform:rotate(0)
}
50% {
transform:rotate(360deg)
}
100% {
transform:rotate(1080deg)
}
}
@-webkit-keyframes
pulse { 0%, 13%, 30%, 43%, 74% {
background-color:rgba(0,0,0,.2)
}
100%, 15%, 28%, 45%, 70% {
background-color:rgba(0,0,0,.9)
}
}
@-moz-keyframes
pulse { 0%, 13%, 30%, 43%, 74% {
background-color:rgba(0,0,0,.2)
}
100%, 15%, 28%, 45%, 70% {
background-color:rgba(0,0,0,.9)
}
}
@-o-keyframes
pulse { 0%, 13%, 30%, 43%, 74% {
background-color:rgba(0,0,0,.2)
}
100%, 15%, 28%, 45%, 70% {
background-color:rgba(0,0,0,.9)
}
}
@keyframes
pulse { 0%, 13%, 30%, 43%, 74% {
background-color:rgba(0,0,0,.2)
}
100%, 15%, 28%, 45%, 70% {
background-color:rgba(0,0,0,.9)
}
}
@-webkit-keyframes
borderPulse { 0% {
box-shadow:0 0 0 0 #000, 0 0 0 1px rgba(0,0,0,.8)
}
40% {
box-shadow:0 0 0 1px #000, 0 0 0 2px rgba(221,187,0,.8)
}
80% {
box-shadow:0 0 0 3px #FFF, 0 0 1px 3px rgba(221,187,0,.8)
}
}
@-moz-keyframes
borderPulse { 0% {
box-shadow:0 0 0 0 #000, 0 0 0 1px rgba(0,0,0,.8)
}
40% {
box-shadow:0 0 0 1px #000, 0 0 0 2px rgba(221,187,0,.8)
}
80% {
box-shadow:0 0 0 3px #FFF, 0 0 1px 3px rgba(221,187,0,.8)
}
}
@-o-keyframes
borderPulse { 0% {
box-shadow:0 0 0 0 #000, 0 0 0 1px rgba(0,0,0,.8)
}
40% {
box-shadow:0 0 0 1px #000, 0 0 0 2px rgba(221,187,0,.8)
}
80% {
box-shadow:0 0 0 3px #FFF, 0 0 1px 3px rgba(221,187,0,.8)
}
}
@keyframes
borderPulse { 0% {
box-shadow:0 0 0 0 #000, 0 0 0 1px rgba(0,0,0,.8)
}
40% {
box-shadow:0 0 0 1px #000, 0 0 0 2px rgba(221,187,0,.8)
}
80% {
box-shadow:0 0 0 3px #FFF, 0 0 1px 3px rgba(221,187,0,.8)
}
}
4. Displays a loading indicator over a specific element containing a background image.
$('#background > div').loadImages();
<div id="background"> <div style=" background: url(bg.jpg)"></div> </div>
5. Execute a callback function when some image are loaded.
$('img').loadImages({
callback : function(){
// do something
}
});
6. Customize the loading element.
$('img').loadImages({
template: "<div class='loading'>"+"</div>"
});
This awesome jQuery plugin is developed by firstpersoncode. For more Advanced Usages, please check the demo page or visit the official website.











