Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/01/2014, 21:20
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Modificar el Nº de columnas según condición

Creo que se vería más ordenado si se mostrara el nombre de la categoría en una celda y las fotos en otra, en lugar de estar creando una celda para cada imagen, porque, por ejemplo, si la fila 1 tiene 4 imágenes, la fila 2 tiene 2 imágenes y la fila 3 tiene 5 imágenes, se vería un poco anti-estética la diferencia de tamaños por cada fila.

Yo te propongo hacerlo así:

Código Javascript:
Ver original
  1. var fotos = {"paisaje": ["fotoP1.jpg", "fotoP2.jpg", "fotoP3.jpg"],
  2.              "monumento": ["fotoM1.jpg", "fotoM2.jpg"],
  3.              "deporte": ["fotoD1.jpg", "fotoD2.jpg", "fotoD3.jpg"]
  4.             },
  5.     tabla = document.createElement("table");
  6.  
  7. for (var i in fotos){
  8.     var fila = document.createElement("tr"),
  9.         columna1 = document.createElement("td"),
  10.         columna2 = document.createElement("td");
  11.    
  12.     columna1.innerHTML = i;
  13.     columna1.style.textAlign = "center";  
  14.     columna2.style.textAlign = "center";
  15.  
  16.     for (var j in fotos[i]){
  17.         var img = document.createElement("img");
  18.         img.src = fotos[i][j];
  19.         columna2.appendChild(img);
  20.     }
  21.     fila.appendChild(columna1);
  22.     fila.appendChild(columna2);
  23.     tabla.appendChild(fila);
  24. }
  25.  
  26. tabla.border = 1;
  27. document.body.appendChild(tabla);

En un objeto literal, inserto los géneros como propiedades de éste y cada uno de ellos tiene asociado a un array con sus respectivas fotos, que en este caso son nombres de ejemplo pero puedes reemplazarlos por los nombres de las imágenes que deseas mostrar. También creo una tabla.

Con ayuda de un bucle, recorro las propiedades del objeto; en cada iteración, creo una fila y dos columnas, a la primera fila le inserto el nombre de la propiedad que representa al género, además, asigno una alineación del texto al centro de cada columna. Con ayuda de otro bucle, recorro el array relacionado a la propiedad actual; en cada iteración, creo un elemento de imagen y le asigno la imagen equivalente a la iteración actual, luego, inserto en la segunda columna al elemento de imagen con la imagen ya asignada.

Culminado el segundo bucle, adhiero ambas columnas a la fila y ésta a la tabla. Así será en cada iteración hasta formar la tabla. Una vez formada la tabla, le asigno un border para delimitar las celdas y la adhiero al cuerpo del documento.

Así es como se verá: http://jsbin.com/AtUKALO/1

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand