hersonHN

sss

Mar 7th, 2013
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var alturaMosaicos;
  2. var anchuraMosaicos;
  3. var isOpen = false;
  4.  
  5.  
  6. function init() {
  7.  
  8.     var nFilas = 10;
  9.     var nColumas = 10;
  10.  
  11.     var contenedor = $('.contenedor');
  12.     var imagen = $('.imagen');
  13.     var widthImg = imagen.width();
  14.     var heightImg = imagen.height();
  15.  
  16.     var widthMosaico = widthImg / nColumas;
  17.     var heightMosaico = heightImg / nFilas;
  18.  
  19.     imagen.hide();
  20.  
  21.     contenedor.width((widthMosaico + 5) * nColumas);
  22.     contenedor.height((heightMosaico + 5) * nFilas);
  23.  
  24.     // almancenando valores en las variables globla
  25.     alturaMosaicos = heightMosaico;
  26.     anchuraMosaicos = widthMosaico;
  27.  
  28.     var fila;
  29.     var mosaico;
  30.     var clear;
  31.     for (var x = 0; x < nFilas; x++) {
  32.         fila = nuevaFila();
  33.         for (var y = 0; y < nFilas; y++) {
  34.             mosaico = nuevoMosaico(imagen, widthMosaico, heightMosaico, x, y);
  35.             fila.append(mosaico);
  36.         }
  37.         fila.append(nuevoClear());
  38.         contenedor.append(fila);
  39.     }
  40.  
  41.     setInterval(animate, 30000);
  42.     animate();
  43. }
  44.  
  45. function nuevoMosaico(imagen, width, height, x, y) {
  46.     var imagenURL = imagen.attr('src');
  47.     var div = $('<div>');
  48.     var posX = height * -x;
  49.     var posY = width * -y;
  50.  
  51.     div.attr('class', 'mosaico');
  52.     div.css('background-image', "url(" + imagenURL + ")");
  53.     div.css('background-position', posY + 'px ' +  posX + 'px');
  54.  
  55.     div.width(0);
  56.     div.height(0);
  57.     div.css('margin-bottom', height);
  58.     div.css('margin-right', width / 2);
  59.     div.css('margin-left', width / 2);
  60.  
  61.     return div;
  62. }
  63.  
  64. function nuevoClear() {
  65.     var div = $('<div>');
  66.     div.attr('class', 'clear');
  67.  
  68.     return div;
  69. }
  70.  
  71. function nuevaFila() {
  72.     var div = $('<div>');
  73.     div.attr('class', 'fila');
  74.  
  75.     return div;
  76. }
  77.  
  78. function animate() {
  79.     if (isOpen) {
  80.         closeAll();
  81.     } else {
  82.         openAll();
  83.     }
  84.  
  85.     isOpen = !isOpen;
  86. }
  87.  
  88.  
  89. function openAll() {
  90.     $('.contenedor .fila').each(function (indexFila) {
  91.         var fila = $(this);
  92.         var mosaicos = fila.find('.mosaico');
  93.  
  94.         mosaicos.each(function (indexMosaico) {
  95.             var mozaico = $(this);
  96.             var tiempoEspera = (indexMosaico * 10 + indexFila) * 100
  97.             setTimeout(function () { open(mozaico) }, tiempoEspera);
  98.         });
  99.     })
  100. }
  101.  
  102. function closeAll() {
  103.     $('.contenedor .fila').each(function (indexFila) {
  104.         var fila = $(this);
  105.         var mosaicos = fila.find('.mosaico');
  106.  
  107.         mosaicos.each(function (indexMosaico) {
  108.             var mozaico = $(this);
  109.             var tiempoEspera = (indexMosaico * 10 + indexFila) * 100
  110.             setTimeout(function () { close(mozaico) }, tiempoEspera)
  111.         });
  112.     })
  113. }
  114.  
  115. function open(mozaico) {
  116.     mozaico.animate({
  117.         'height': alturaMosaicos,
  118.         'width': anchuraMosaicos,
  119.         'margin-right': 0,
  120.         'margin-left': 0,
  121.         'margin-bottom': 0
  122.     }, 600);
  123. }
  124.  
  125. function close(mosaico) {
  126.     mosaico.animate({
  127.         'height': 0,
  128.         'width': 0,
  129.         'margin-right': anchuraMosaicos / 2,
  130.         'margin-left': anchuraMosaicos / 2,
  131.         'margin-bottom': alturaMosaicos
  132.     }, 600)
  133. }
  134.  
  135.  
  136. $(window).load(function () {
  137.     init();
  138. });
Advertisement
Add Comment
Please, Sign In to add comment