Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
  <meta charset="utf-8">
  <title>Demo by Roko C.B.</title>
</head>
<body>
  <div id="gallery">
    
  </div>
  
  <button>NEXT !</button>
  Click more to see all random FX!
  
  
  
  
</body>
</html>
 
#gallery{
  overflow: hidden;
  width: 600px;
  height: 460px;
  white-space: nowrap;
}
#gallery > div.div5{
  position: relative;
  display: inline-block;
  width: 20%;
  height: 460px;
  background: gray;
}
 
var $gal   = $('#gallery');
var width  = $gal.outerWidth();
var height = $gal.outerHeight();
var img = [
  "http://www.vivaboo.com/wp-content/uploads/2010/05/monarch-butterfly-butterflies-nature-insect-animal-17.jpg",
  "http://600.mywallpapers.org/wallpapers/2/273/thumb/600_Nature-007.jpg"
];
var n = img.length;
var c = 0;
// Effects:
var fx = [
  {top: -height},
  {opacity: 0},
  {top:  height},
  {left: -width}
];
// Random FX:
function randFX(){
  return fx[ Math.floor(Math.random()*fx.length) ];
}
// Preload all images:
for(var i=0; i<img.length; i++){
  var nImg = new Image();
  nImg.src = img[i];
}
// Creates a new set of 5 DIV:
function div5(){
  var w5 = width/5 ;
  for(var i=0; i<5; i++){
    var div = $("<div />", {
      'class' : "div5",
      'style' : "background: url("+img[c]+") "+ (-w5*i) +"px 0"
    });
    $gal.append(div);
  }
}
div5();
// Animates current set
function animDiv5(){
  
  // Prepare next image as gallery normal background image
  $gal.css({background: "url("+ img[c] +")"});
  
  // Generate a random animation
  var animfx = randFX();  
  
  // Animate Current DIVs
  $("div", $gal).each(function(i){
    $(this).stop().delay(70*i).animate( animfx, function(){
      if(!$(this).next()[0]){ // Once all are animated...
         $gal.html(""); // Remove DIVs
         // The gallery BG was visible for a tily amount of time,
         // now cover it with the same image but again splitted in DIVs
         div5(); 
      }
    });
  });
}
// Do it!
$("button").click(function(){
    c = ++c % n; // Increment counter
    animDiv5();
});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
roXonpro
0viewers