Ir al contenido principal

Aviso de cargando página en jquery mientras se carga la siguiente

Continuando con el mismo ejemplo de los anteriores posts, voy a explicar cómo lo he hecho yo para que, mientras se recarga un div, nos muestre un mensaje de que se está cargando. No es que sea necesario incluirlo pero sí conveniente. ¿Motivos?; los siguientes:




  • No es mi caso pero es posible que vosotros, para la petición de carga del siguiente div, uséis peticiones Ajax para comunicaros con el servidor, como por ejemplo para comunicaros con la base de datos. Esto puede tardar un poco en ejecutarse.
  • También puede ser que, el que quiera ver vuestra página, tenga una conexión lenta.


  • Por eso es conveniente que el usuario vea que, al pinchar en el enlace, está ocurriendo algo y no se ponga a cliquear como un poseso, maldiciendo, porque no funciona. Seguimos con el ejemplo de esta página: http://www.talleresguadamia.com/index.html y los códigos serían los siguientes:

    En jquery:

    <script type="text/javascript">
    $(document).ready(function(){
       $("#contenido a").each(function(){
          var href = $(this).attr("href");
          $(this).attr({ href: "#"});
          $(this).click(function(event){
           
             $("#contenido").css("display","none"); /* "contenido" no se ve */
             $("#cargando").css("display", "inline");/* "cargando" es visible */
             $("#contenido").load(href).fadeIn(700);/* cargamos la página solicitada*/
             $("#cargando").css("display", "none");/* "cargando" es invisible */
          });
       });
    });;
    </script>

    el HTML (estructura):

     <html xmlns="http://www.w3.org/1999/xhtml">

    el CSS para cargando y contenido:

    #cargando {
        display: none;                         /*esta es la linea importante display none*/
        width:766px; height:1000px;
        background-color:#FFFFFF;
        float:left;
    }
    #contenido{
        width:766px; height:1000px;
        background-color:#D7D6D6;
        float:left;
    }


    Viendo el código la explicación es sencilla. En la estructura HTML ponemos en div "cargando" encima de "contenido". En el CSS podéis ver que tanto "cargando" como "contenido" tienen los mismos valores excepto "cargando" al que añadimos "display:none" para hacerlo invisible. Cuando se ejecute el código JQUERY al pinchar el enlace, vamos modificando los valores de "display" a "none" e "inline" según podéis ver.

    Comentarios

    Entradas populares de este blog

    Leer un archivo XML con jQuery y javascript y modificar un HTML con su contenido

       Una manera muy interesante y fácil de modificar los textos de tu página web. Si, por ejemplo, tenemos una página donde cambiamos a menudo unas noticias que tenemos en el margen derecho, podríamos tener un código HTML como este:    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Manejar archivo XML</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="leerxml.js"></script> <link rel="stylesheet" href="estilos.css"> </head> <body> <h1>Titulo de la página</h1> <div id="derecha"> <div class="noticias"> <div class="prim

    Recargar div con efecto de aparición suave (Fade In) en jQuery

      En este post continúo con el código que describí en el segundo post sobre cómo refrescar un div sin necesidad de refrescar toda la página, pero añadiéndole unas lineas para este se aparezca de forma suave. La página de ejemplo es http://www.talleresguadamia.com y el código es el que sigue: <script type="text/javascript"> $(document).ready(function(){    $("#contenido a").each(function(){       var href = $(this).attr("href");       $(this).attr({ href: "#"});       $(this).click(function(event){                  $("#contenido").css("display","none");          $("#contenido").load(href).fadeIn(700);        });    }); });; </script>   Podéis ver lo fácil que es. Hemos agregado sólo dos cosas:   - La linea  "$('#contenido').css('display','none')", que lo único que hace es cambiar la propiedad css "display" del div "#contenido&q

    Código jQuery para ver una imagen al pasar el ratón sobre un enlace.

       Voy a explicar un código en jQuery , para que, al pasar el puntero del mouse sobre un enlace o, en este caso, sobre un texto cualquiera (sin necesidad de ser un enlace), se nos muestre una imagen cerca del enlace y que esta desaparezca al retirar el puntero del mouse (sin necesidad de hacer click sobre él). Podéis pensar que me estoy repitiendo con un anterior post. Casi que si. Pero la diferencia es que, en este caso, no sabemos donde estará situada la imagen. Es decir que, dependiendo de la situación de la pantalla donde esté el enlace o texto, allí se mostrará la imagen.    Vamos al grano. Primero el código en HTML:       <span class="enlace" title="hyneria.png">Hyneria</span>    Podéis ver que, en este caso, no se trata de un enlace. Le pongo el nombre de 'enlace' a la clase porque en el CSS le doy apariencia de enlace. Aquí lo importante es 'title' el cual contiene el nombre de la imagen que queremos mostrar (pod