Fader - Fade in/out image showcase
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="app.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<div id="fader">
<div class="fader-img" style="background: url('img_1.jpg') no-repeat center center / cover;"></div>
<div class="fader-img" style="background: url('img_2.jpg') no-repeat center center / cover;"></div>
<div class="fader-img" style="background: url('img_3.jpg') no-repeat center center / cover;"></div>
</div>
<script src="fader.js"></script>
</body>
</html>
/**
* Created by willsquire on 13/10/15.
*/
var fader_imgs = $('.fader-img');
var fade_speed = 1000;
var fade_delay = 5000;
// Only fade between images if there is more than one
if (fader_imgs.length > 1) {
var img_index = 0;
var z_index_show = 1;
var z_index_hide = 0;
fader_imgs.each(function(index, element) {
element.style.opacity = 0;
element.style.display = 'none';
element.style.zIndex = z_index_hide;
});
_fade_in(fader_imgs[img_index]);
function _fade_out(img) {
$(img).fadeTo(fade_speed, 0, function() {
img.style.display = 'none';
img.style.zIndex = z_index_hide;
});
}
function _fade_in(img) {
img.style.zIndex = z_index_show;
img.style.display = 'block';
$(img).fadeTo(fade_speed, 1);
}
function _next_img() {
// Remove image
_fade_out(fader_imgs[img_index]);
img_index++;
if (img_index == fader_imgs.length)
img_index = 0;
// Add image
_fade_in(fader_imgs[img_index]);
}
setInterval(_next_img, fade_delay);
}
#fader {
width: 100%;
height: 500px;
}
.fader-img {
width: 100%;
height: 100%;
position: absolute;
z-index: 0;
}