Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/09/2010, 13:17
Dany_s
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: No cargar imágenes hasta que no se estén viendo

como la búsqueda de imágenes de google http://www.google.com.ar/images?hl=e...w=1920&bih=886

o los comentarios en la doc de jquery http://api.jquery.com/scroll/



es bastante sencillo

Alto de página = 1000
Posición top del div = 1500
Si moves el scroll y obtenes la posición, lo restas con la posición del div y sabes si se encuentra en pantalla :)

hace 2 archivos php
tres.php
Código PHP:
Ver original
  1. <?php
  2. sleep(4);
  3. echo "contenido div 3";
  4. ?>

y cuatro.php
Código PHP:
Ver original
  1. <?php
  2. sleep(4);
  3. echo "contenido div 4";
  4. ?>


y este el html y jquery, suponé que querés cargar contenido sólo cuando se vean el div #tres y #cuatro

Código HTML:
Ver original
  1.   <head>
  2.     <title></title>
  3.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  5.     <script>
  6.     $( function (){
  7.         //Evento scroll para hacer unos calculos cada vez que muevan el scroll
  8.         $(window).scroll(function(){
  9.             /*
  10.              * Resto la posicion del div menos la posicion del scroll
  11.              * Si la pantalla es de 1000px entonces, sabiendo que la posicion del div es 1500 y el scroll de 100 sé que no se está viendo el div
  12.              * cuando la posicion top del scroll sea de 500 ahi recien está por entrar en pantalla, 1000 - 500 = 1000 (que es el tamaño de pantalla)
  13.              * si es menor o igual al tamaño de la pantalla muestro el contenido, tambien compruebo que el div no tenga clase 'cargando' asi no hace petición cada vez que se mueva el scroll
  14.              * Cuando entra en el condicional borro la clase '.cargando' asi ya no vuelve a entrar en el condicional
  15.              */
  16.             if( ( $('#tres').position().top - $(window).scrollTop() ) < $(window).height() && !$('#tres.cargado').length ){
  17.                $('#tres').text('Cargando...').addClass('cargado').load("tres.php");
  18.            }
  19.            //Y lo mismo para este
  20.            if( ( $('#cuatro').position().top - $(window).scrollTop() ) < $(window).height() && !$('#cuatro.cargado').length ){
  21.                $('#cuatro').text('Cargando...').addClass('cargado').load("cuatro.php");
  22.            }
  23.        });
  24.    });
  25.    </script>
  26.     <style>
  27.         div{height:500px; width:50px; background:green; margin-bottom:10px}
  28.         #precarga{position:fixed; background-color:yellow; left:50%; width:100px; height:100px; display:none}
  29.     </style>
  30.   </head>
  31.     <div id="precarga">Cargando...</div>
  32.     <div id="uno">Primer div</div>
  33.     <div id="dos">Segundo div</div>
  34.     <div id="tres">Tercer div</div>
  35.     <div id="cuatro">Cuarto div</div>
  36. </body>
  37. </html>