Dividing an image with jQuery is an effect that we can achieve in a relatively easy way. We need a container to host the main image, CSS absolute positioning, a CSS rule to hide the thumbnails by default and a single loop to create such thumbnails. First of all, let's define our markup.
<div id="image"> <img src="1.jpg" alt="" id="main" /> </div>
Now we need first some basic CSS rules:
#image {
width: 500px;
height: 333px;
margin: 0 auto;
position: relative;
}
#image #main {
width: 100%;
height: 100%;
display: block;
}
position: relative will create a contextual positioning for our thumbnails. Now we need to generate them:
$(document).ready(function() {
var src = $('#image #main').attr('src'), i, len = 5;
for(i = 1; i < len; i += 1) {
$('<img/>').attr({
src: src,
width: 125,
height: 85,
id: 'thumb-' + i
}).appendTo('#image');
}
// code continues
});
We've assigned a progressive ID to all the thumbnails. Since now the thumbnails are visible, we need to hide and position them with CSS:
#image #thumb-1,
#image #thumb-2,
#image #thumb-3,
#image #thumb-4 {
position: absolute;
width: 125px;
height: 85px;
display: none;
}
#image #thumb-1 {
top: 0;
left: 0;
}
#image #thumb-2 {
top: 0;
right: 0;
}
#image #thumb-3 {
bottom: 0;
left: 0;
}
#image #thumb-4 {
bottom: 0;
right: 0;
}
Our thumbnails have been positioned on each corner of the main container box. Then we need to show them after a certain time delay:
// code continues
var interval = window.setTimeout(function() {
$('#main').animate({
opacity: '0.5'
}, 1000, function() {
$(this).nextAll().show(1000);
});
}, 2000);
You can see the demo below.