Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Problema con preload Jquery de imagenes

Estas en el tema de Problema con preload Jquery de imagenes en el foro de Jquery en Foros del Web. Buenas. Antes que nada, gracias a todos los que colaboren con el tema. Ahora a lo concreto. Trabajo en la programación de una web portfolio ...
  #1 (permalink)  
Antiguo 29/04/2015, 16:04
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años
Puntos: 4
Problema con preload Jquery de imagenes

Buenas. Antes que nada, gracias a todos los que colaboren con el tema.

Ahora a lo concreto. Trabajo en la programación de una web portfolio de fotografía, y para la carga de las imágenes que se muestran en el sitio, hice un pequeño scrip que usa jquery para ocultar las imagenes mientras estas se descargan y luego mostrar cada imagen que haya terminado de bajarse, de forma de individual para cada imagen.

El problema es que en algunas ocasiones el script parece fallar y algunas imágenes no se muestran por mas que hayan terminado de descargarse. Y principalmente esto pasa cuando luego de haber entrado por primera vez al sitio. Podría estar relacionado con el cache o algo así.

Pero la verdad es que le di mil vueltas y no encuentro el error, o problema.

Dejo el codigo.

HTML & PHP
Código HTML:
<div class="photos">
	<a href="estudio/server/php/files/<?php echo $row['name']; ?>" data-lightbox="example-set" data-title="<?php echo $row['titulo_foto']; ?>">
		<img class="photo" id="id_<?php echo $row['id_foto']; ?>" src="estudio/server/php/files/<?php echo $row['name']; ?>" />
		<div id="facebookG">
		   <div id="blockG_1" class="facebook_blockG"></div>
		   <div id="blockG_2" class="facebook_blockG"></div>
		   <div id="blockG_3" class="facebook_blockG"></div>
		</div>
	</a>
</div> 
Código Javascript:
Ver original
  1. $( document ).ready(function() {
  2.     showDiv();
  3.     fixlightbox();
  4. });
  5. // Show Divs
  6. function showDiv() {
  7.     $('.photos a img').load(function(){
  8.         $(this).fadeIn(600);
  9.         $(this).next().fadeOut(0);
  10.         exe_masonry();
  11.     });
  12. }

Lo que falla es el fadeIn en la funcion showDiv(). Nunca se hace. Pero en los distintos debugers que hay para codigo, ninguno me indica un error concreto cuando pasa. Entonces no descubro cual es el problema.

Ah, otro dato llamativo es, que esto pasa más seguido en Google Chrome que en otros navegadores.

Gracias de nuevo a todos los que ayuden.
Saludos.
  #2 (permalink)  
Antiguo 06/05/2015, 15:00
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años
Puntos: 4
Respuesta: Problema con preload Jquery de imagenes

Alguien tiene alguna idea? Yo continuo buscando, pero nada.
  #3 (permalink)  
Antiguo 07/05/2015, 13:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Problema con preload Jquery de imagenes

Podrías probar con este script. Utiliza código JavaScript nativo (con lo cual evitarás cargar toda una librería) y hace lo que buscas.

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
  #4 (permalink)  
Antiguo 07/05/2015, 14:50
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años
Puntos: 4
Respuesta: Problema con preload Jquery de imagenes

Hola. Gracias por el concejo.

Lo he intentando, pero me trae problemas con el plugin masonry, que acomoda el espaciado entre las imagenes.

Las imagenes se posicionan una sobre otra.
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Última edición por elmouse19; 07/05/2015 a las 14:55 Razón: Agregado
  #5 (permalink)  
Antiguo 11/05/2015, 14:35
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años
Puntos: 4
Respuesta: Problema con preload Jquery de imagenes

Al final lo resolví usando LazyLoad, y agregando esto a la función, para corregir el problema de Mansonry:

Código Javascript:
Ver original
  1. $( document ).ready(function() {
  2.         $("img.lazy").lazyload({
  3.             effect : "fadeIn",
  4.             threshold : 200,
  5.             load: function() {
  6.                         exe_masonry();
  7.             }
  8.         });
  9.     });

exe_masonry() es una función que se ejecuta mas adelante en el código para llamar a la ejecución de Mansory.

Saludos, y gracias por la ayuda.
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Etiquetas: imagenes, preload
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:08.