Buscar temas sin respuesta | Ver temas activos Fecha actual 16 Dic 2017 16:04

Reglas del Foro


Es un foro abierto pero moderado, es decir que cualquier mensaje pasa por el moderador que borrará de inmediato todo lo que suene a spam.



Responder al tema  [ 15 mensajes ]  Ir a página Anterior  1, 2
 Como puedo mostrar los objetos de un array en columnas 
Autor Mensaje
He modificado el código y en unos casos lo hace bien, pero hay otros en los que no.
Te voy a poner unos ejemplos en los que no lo hace bien
Las fotos en total son 10
Si yo le pongo 4 filas y 2 columnas, en la 1ª página que aparecen 8 fotos ya aparece el botón deshabilitado, así que no puedes pasar a la 2ª página.
Si pones por ejemplo, 4 filas y 1 columna en la 1ª página también aparece el botón deshabilitado.
Si pongo 1 fila y 2 columnas el botón cuando llega al final y ha mostrado todas las fotos no se deshabilita y sigue pasando páginas, en blanco.

En el resto de combinaciones de filas y columnas si lo hace bien

Saludos


23 Dic 2013 11:42
Site Admin

Registrado: 14 Sep 2012 07:50
Mensajes: 36
Hola
Podrías usar un contador de páginas y comparar la página actual con la página final. El número de páginas lo podrías calcular como longitud de la matriz dividido por (col*filas) redondeado por encima (Math.ceil). O bien, determinar si estás en la última fila, esta solución

var filasTotal= Math.floor(array.length/col)+1;
var filasRest = filasTotal - (pointer+counter);
return (filasRest>0) ;

Como ves calcula el número de filas totales, y calcula el número de filas que quedan por mostrar, si es más de 0 habilita next y si no lo deshabilita
(Entiendo que pointer mantiene el número de la fila actual y counter es el número de filas por página)

Saludos


23 Dic 2013 18:22
Perfil WWW
Hola, con el código tal cual me has puesto, hay algunos casos en los que no funciona bien, así que lo he modificado y parece que ahora funciona perfectamente.
Lo que he hecho ha sido quitar el +1 y sustituir el Math.floor por el Math.ceil y como te he comentado así funciona perfectamente.
Código:
 
var filasTotal= Math.ceil(array.length/col);
var filasRest = filasTotal - (pointer+counter);
return (filasRest>0)


27 Dic 2013 22:46
Una vez que parece solucionado el problema del botón siguiente, me queda por resolver el problema del botón última, para ir directamente a la última página.
Código:
   this.last = function()
    {
        var filasTotal = Math.ceil(array.length/col)+1;
        pointer = (filasTotal - counter);      
        self.show();
    }


27 Dic 2013 23:24
He conseguido que me funcione el botón de ir a la última página, pero utilizando 4 if según la combinación entre filas y columnas le digo que me haga una cosa u otra y funciona, pero no es ni muy ortodoxo ni es lo más apropiado, así que, si se te ocurre alguna idea para hacerlo de otra manera te estaría muy agradecido.
Saludos


05 Ene 2014 01:17
Mostrar mensajes previos:  Ordenar por  
Responder al tema   [ 15 mensajes ]  Ir a página Anterior  1, 2

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Designed by ST Software for PTF.
Traducción al español por Huan Manwë para phpBB-Es.COM