Experiencias de Desarrollo Web

Blog de tips

Cómo usar los íconos Font Awesome (fa)

leave a comment »

El conjunto de íconos Font Awesome es una de las alternativas que nos permiten decorar nuestro sitio o desarrollo web con elementos gráficos que le den un toque moderno y ligero ya que la representación gráfica de los íconos no se realiza mediante imágenes sino a través de una tipografía (fuente).

La versión actual incluye una colección de 585 íconos en la versión 4.4.0 de Font Awesome y constantemente se agregan más.

font-awesome

La imagen anterior muestra una parte de la colección de íconos Font Awesome.

Unas de las características especiales de este conjunto de íconos es:

  • Al no ser gráficos y ser representados mediante una fuente, el peso en mucho menor.
  • Pueden utilizarse distintos colores para su representación
  • Es posible utilizar varios tamaños sin que estos se deformen

Prácticamente para usar estos íconos es necesario:

  • del proyecto de Font-Awesome es necesario descargar a la carpeta de tu proyecto la carpeta:
    • CSS que incluye los siguientes archivos:
      • font-awesome.css
      • font-awesome.css.map
      • font-awesome.min.css
    • fonts que incluye los siguientes archivos
      • FontAwesome.otf
      • fontawesome-webfont.eot
      • fontawesome-webfont.svg
      • fontawesome-webfont.ttf
      • fontawesome-webfont.woff
      • fontawesome-webfont.woff2

Una vez que tengas la estructura de directorios mencionada en la carpeta de tu proyecto, es necesario incluir el siguiente código en las páginas desde donde se utilizarán los íconos:

La referencia a los archivos CSS:
<link type=”text/css” rel=”stylesheet” href=”css/font-awesome.min.css”/>
<link type=”text/css” rel=”stylesheet” href=”css/font-awesome.css”/>

y ¡listo!, esto es lo que necesitas.

Ahora, para llamar los íconos en tu página web se hace através del artributo class de HTML y donde se mandan a llamar las conjuntos de estilos defindos por Font Awesome, de la siguiente manera:

<span class=”fa fa-folder-open”></span> directorio<br/>
<span class=”fa fa-folder-open fa-2x”></span> directorio al doble<br/>
<span class=”fa fa-folder-open fa-3x”></span> directorio al triple<br />
<span class=”fa fa-spinner fa-2x”></span>cambio de ícono <br/>
<span class=”fa fa-spinner fa-2x” style=”color:red”></span>Al ser una fuente puedes indicar el color que necesitas<br/>

el resultado es:

font-awesome-ejemplo

Utilizar una etiqueta spam es semanticamente mejor que utilizar <i> como lo menciona la ayuda de la página oficial de Font Awesome, sin emabargo es posible utilizar cualquiera de las dos.

Una de las características de estos íconos es la rotación, la puedes experimentar con el estilo: fa-spin

Font Awesome incluye el soporte para botones, listas y controles HTML, puedes encontrar documentación completa en: http://fortawesome.github.io/Font-Awesome/examples/

Saludos

Written by igarperez

agosto 28, 2015 at 2:48 pm

Publicado en CSS, HTML

Tagged with , ,

Creación de menú (UL) desde cero – 5 Animación JQuery

with 2 comments

En los post anteriores hemos creado un menú básico horizontal utilizando listas no ordenadas, luego le agregamos submenús y también lo hicimos pegajoso al scrollear sobre la página. El día de hoy modificaremos el menú básico para hacerlo vertical y vamos a utilizar JQuery para animar (mostrar / ocultar ) el menú y mejorar la navegabilidad del sitio.

1.- Estructura básica del menú. Utilizaremos la misma estructura que hemos utilizado desde el inicio.  

 <div class="contenedorMenu">        
           <ul class="menu">
                 <li><a href="#inicio">Inicio</a></li>            
                 <li><a href="#seccion1">Sección 1</a></li>
                 <li><a href="#seccion2">Sección 2</a></li>
                 <li><a href="#seccion3">Sección 3</a></li>
        </ul>                        
 </div>

 

2.- Estilos para el menú. Utilizaremos las mismas reglas, solamente cambiaremos algunos estilos para hacerlo vertical.   Hasta este punto el menú se ve así: Menu JQuery

3.- Agregar elementos adicionales a la página. Vamos a incorporar un encabezado para el menú, este contendrá un botón en donde al hacer clic se mostrara u ocultara el menú. Antes del div class=”contenedorMenu” agregamos:

<div class=”encabezadoMenu”></div>
<div class=”botonMenu”></div>

y su correspondiente css

/*Estilos para el encabezado del menu*/            
.encabezadoMenu{ width:250px; height:70px; background-color:#2C2C30;}            
.botonMenu{width:37px; height:31px; background-image:url(‘Menu.png’); position:relative; top:20px; left:25px;}            
.botonMenu:hover{ cursor:pointer} ahora el menú se ve asi: Menu5_1 4.- Agregar la referencia a la API de JQuery. De preferencia utilicemos el sitio oficial de JQuery y la versión mas reciente para trabajar nuestros proyectos. 5.- Implementar el código JQuery. Lo que queremos lograr es lo siguiente: -Inicialmente el menú debe estar oculto. -Al hacer clic sobre el botón, el menú deberá desplegarse y mostrarse completamente. -Al hacer clic nuevamente, el menú deberá contraerse y ocultarse completamente. Esto se implementará así: // <![CDATA[

    $(document).ready(function(){    
          $(“.contenedorMenu”).slideToggle(); /*Ocultar de inicio el menu*/
          /*Efecto del menu principal*/
          $(“.botonMenu”).click(function(event){ 
               event.stopPropagation(); 
              $(“.contenedorMenu”).slideToggle();  /*SlideUp o SlideDown dependiendo de su estado*/
        });            
  });    

// ]]>
menuAnimado El funcionamiento de SlideToggle, SlideUp y SlideDown puede estudiarse en la documentación oficial de JQuery. En el siguiente post, incluiremos el uso del scroll para ocultar el menú. Gracias

Written by chuyrdz

febrero 10, 2015 at 11:07 am

Publicado en CSS, HTML, JQuery

Tagged with , , , , ,

Crear un menu usando elementos DIV y CSS

leave a comment »

Generalmente la creación de menús horizontales en páginas web se realizan mediante listas (ul,ol) o mediante el uso de DIV, en algún otro momento chuyrdz ya expuso detalladamente cómo se realiza la creación de un menu (ul) desde cero.

Ahora mostraré los elementos mínimos para la creación de un menú horizontal usando solamente DIV y darle la funcionalidad necesaria sin uso de JavaScript para lograr la funcionalidad.

A partir de este código mostrado tendrán la posibilidad de personalizarlo de acuerdo al diseño que se seleccione.

La estructura en HTML es la siguiente:

<div class=”Menu”>
    <div><a href=”#”>inicio</a></div>
    <div><a href=”google.com.mx”>Google</a></div>
    <div><a href=”wordpress.com”>Word Press</a></div>
    <div>
            <a href=”#”>Correos</a>
            <div class=”SubMenu”>
                <div><a href=”gmail.com”>google</a></div>
                <div><a href=”hotmail.com”>hotmail</a></div>
                <div><a href=”yahoo.com”>yahoo</a></div>
            </div>
    </div>
    <div>
           <a href=”#”>Enlaces</a>
          <div class=”SubMenu”>
               <div><a href=”www.google.com.mx”>google</a></div>
               <div><a href=”hotmail.com”>hotmail</a></div>
                <div><a href=”yahoo.com”>yahoo</a></div>
           </div>
    </div>
</div>

La estructura de estos elementos es la siguiente:

div (menu)
    – div
            -a
    – div
            -a
    – div
            -a
            -div (submenu)
                    -div
                          -a
                    -div
                          -a
                    -div
                          -a
    – div
            -a
            -div (submenu)
                    -div
                          -a
                    -div
                          -a
                    -div
                          -a

La estructura anterior muestra los elementos principales del menú que contienen submenú, en este caso, se ejemplificará para los dos últimos elementos, sin embargo si los dos primeros elementos tuvieran submenú, solo tendría que seguirse la estructura especificada y la funcionalidad se aplicará sin realizar ninguna modificación.

Ahora, para que esta estructura tenga la funcionalidad mínima de mostrar los submenús cuando el mouse esté arriba de la opción se deberá especificar el siguiente código como parte de los estilos.

/*establecemos el alto del menú*/
.Menu

{
height:30px; 
}

/*flotamos los div que son hijos directos del div que tiene como clase Menu*/
.Menu > div
{
float:left;
}

/*se indica que los enlaces ocupen todo el espacio del DIV donde están contenidos, se les da un espacio de separación interior entre el texto y el borde (padding)*/
.Menu a
{
display:block;
padding:5px 15px 5px 15px;
}

/*se establece la funcionalidad del enlace al colocar el mouse arriba del enlace*/
.Menu a:hover
{
background-color:gray;
}

/*Se establecen las características iniciales del submenú, el cual no debe mostrarse*/
.SubMenu
{
position:absolute;
visibility:hidden;
display:none;
}

/*Se establece la funcionalidad del submenu cuando el mouse esté arriba de la opción de menu*/
.Menu > div:hover .SubMenu
{
display:block;
visibility:visible;
}

Hasta el momento se tiene solamente funcionalidad, sin embargo este código está listo para adaptarle cualquier diseño de colores, contornos, estilos de letra y demás monerías  a los elementos estáticos o dinámicos.

Saludos

Written by igarperez

febrero 9, 2015 at 2:16 pm

Publicado en CSS, HTML

Juego del “Gato” en JQuery

Esta vez vamos a diseñar un juego, el famoso “Gato” para poder competir con algún amigo. Algunos problemas para la elaboración de este juego se solucionaron con la ayuda del libro “Programming with JavaScript: Algorithms and Applications for Desktop and mobile Browsers”.

Comencemos:

1.- Estructura html. En este caso no es nada complicada, solamente haremos uso de un div sobre el cual iremos agregando la estructura con la función append. Por ello es necesario agregarle un id con el cual vamos a hacerle referencia.

2.- Estilos del juego. En este caso no haremos uso de muchos estilos, simplemente para el identificador anterior y poder centrarlo, de modo que podamos ver mejor el tablero del juego.

<style type=”text/css”>
#gato{ width:250px;  margin:10px auto; }

</style>

3.- Agregar la referencia a la API de JQuery. Accedemos a la página de JQuery para agregar el query más actualizado.

4.- Implementar código JQuery. El siguiente es el código completo del script, posteriormente vamos a definir cada uno de sus elementos a fin de entenderlo.


  $(document).ready(function () {
       var cuadritos = [];
       var puntos;
       var movimientos;
       var turno = “X”;
       var ganar = [7, 56, 448, 73, 146, 292, 273, 84];
       var jugar,ganador;

      $(function() {
var tablero = $(“

“);
               var indicador = 1;
               for (var i=0; i
                              var fila = $(“
“);
                              tablero.append(fila);
                              for (var j = 0; j
                                          var celda = $(“

“);
                                          celda[0].indicador = indicador;
                                          celda.click(function() {
                                                               if ($(this).html() !== ” “) {
                                                                          return;      
                                                                         }
                                                              $(this).html(turno);
                                                              movimientos =movimientos + 1;
                                                              puntos[turno] += $(this)[0].indicador;
                                                              if (ganador(puntos[turno])) {
                                                                         alert(turno + ” ha Ganado!!!”);
                                                                         }
                                                              else if (movimientos == 9) {
                                                                         alert(“Es un empate”);
                                                                          }
                                                              else {
                                                                       if(turno==”X”)
                                                                                      {turno=”O”;}
                                                                       else
                                                                                       {turno=”X”}
                                                                       }
                                              });
                                           fila.append(celda);
                                           cuadritos.push(celda);
                                           indicador += indicador;
                                 }
               }
   $(document.getElementById(“gato”)).append(tablero);
               jugar();
               });

jugar = function() {
                       turno = “X”;
                       puntos = {“X”: 0, “O”: 0};
                       movimientos = 0;
                       cuadritos.forEach(function(cuadro)
                                                             {cuadro.html(” “);
                                                         });
                   };

ganador = function(puntos) {
                           for (var i=0;i
                                           if ((ganar[i]&puntos)==ganar[i]){
                                                       return true;
                                                        }
                             }
                            return false;
                      };
});

5.- Entendiendo el script de JQuery. La función principal, como ya sabemos, comienza con el

$(document).ready();

De modo que hagamos referencia al documento de nuestra página. Declaramos algunas variables que nos serán útiles.

Para determinar la condición de victoria cada cuadro se “etiqueta” de izquierda a derecha y de arriba abajo, con las sucesivas potencias de 2. Cada celda representa un valor de la potencia y dicho valor se le asigna al jugador que ocupa la casilla. Por lo tanto el ganador se puede determinar fácilmente comprobando si los valores de los jugadores han cubierto cualquiera de las combinaciones para obtener la victoria. Dichas combinaciones son las que pertenecen a la variable ganar:

273                 84

\               /

1 |   2 |   4  = 7

—–+—–+—–

8 |  16 |  32  = 56

—–+—–+—–

64 | 128 | 256  = 448

=================

73   146   292

De este modo llenamos la variable ganar con los valores con los que es posible ganar.

La siguiente función se encarga de dibujar el tablero haciendo uso del comando append, se utiliza todo entre la función $( ) pues de este modo se hace más simple seleccionar elementos y para poder hacer un callback de otras funciones (jugar y ganador) que se explicarán más adelante  y funciona de la siguiente manera:

  var tablero = $(“<table bgcolor=’green’ border=5 cellspacing=10>”);

Define una variable con un código html que se encarga de dibujar nuestra tabla. El siguiente for se encarga de agregar las filas de nuestra tabla de acuerdo al tamaño que definimos

for (var i=0; i<3; i+=1) {
var fila = $(“<tr>”);

            tablero.append(fila);

Entendemos entonces que nuestro primer for se encarga de agregar las filas, requerimos que sea menor que 3 pues un “gato” no contiene más de 3 filas,  y se agregan con el comando append a la tabla como se mencionó anteriormente.

Del mismo modo que lo anterior, nuestro siguiente for agrega las celdas (necesitamos que sean 3 por fila) y a la primer celda (Celda[0]) le asigna el valor de 1, denotado como celda[0].indicador de modo que se asignen los valores a la matriz en potencias de 2 (20=1) como se explicó en la primera parte.

for (var j = 0; j <3; j += 1) {
var celda = $(“<td height=50 width=50 align=center></td>”);

                celda[0].indicador = indicador;

A continuación, y dentro de ambos for utilizamos la función click en la variable celda que nos permitirá realizar lo que necesitamos cuando se le de click a la celda

celda.click(function() {

Y una vez dentro de la función si se da click a un elemento que no esté vacío no queremos que ocurra algo, por lo que utilizamos el siguiente condicional:

if ($(this).html() !== ” “) {
return;

         }

En caso de que el elemento esté vacío mediante el uso de $(this).html(turno); nos encargamos de imprimir X o O de acuerdo al turno que corresponde. A continuación aumentamos los movimientos, pues se utilizan como condición para alcanzar un empate, es decir, si se alcanzan los 9 movimientos y no se ha declarado un ganador, automáticamente se determina un empate.

A continuación se suman los puntos que obtiene por presionar una casilla y se le asignan a turno, sea O o X:

puntos[turno] += $(this)[0].indicador;

Ahora, mediante condicionales se determinan las condiciones de victoria, primeramente, si los puntos sumados corresponden a alguno de la cadena ganador, entonces se determina que ha ganado el jugador del turno en curso. En caso de que no se haya determinado aún un ganador y se hayan alcanzado los 9 movimientos determina un empate con un alert. Y finalemente, si no hay ganador aún, cambia al turno del siguiente jugador.

if (ganador(puntos[turno])) {
alert(turno + ” ha Ganado!!!”);

       }
else if (movimientos == 9) {
              alert(“Es un empate”);
       }
else {
              if(turno==”X”)
                             {turno=”O”;}
              else
                             {turno=”X”}
          }

Y para terminar los cilcos for agregamos la celda a la fila con append, y el valor de la celda (en la que se hizo click) al arreglo cuadritos mediante la función push y aumentamos el indicador.

fila.append(celda);
cuadritos.push(celda);

indicador += indicador;

Terminamos la función llamando al documento y obteniendo el elemento por su identificador (nuestro único div) y le agregamos el tablero que se realizó anteriormente. Y llamamos a otra función llamada jugar();.

$(document.getElementById(“gato”)).append(tablero);
jugar();

FUNCIÓN JUGAR Y FUNCIÓN GANADOR

Estas funciones no son nada complicadas,  se declaran como variables para poder llamarlas dentro de la función principal, de modo que podamos hacer modificaciones al juego más rápidamente, además de que sera menos complicado entender como funciona el cambio de turnos y la búsqueda del ganador en el arreglo. La función jugar únicamente tiene la función de alternar los valores de O o X y de asignar a cada elemento de “cuadritos” un espacio en blanco.

jugar = function() {
turno = “X”;

                        puntos = {“X”: 0, “O”: 0};
                        movimientos = 0;
                        cuadritos.forEach(function(cuadro)
                                                              {cuadro.html(” “);}

Por último explicaremos la función ganador la cual, tal como lo dice su nombre, se encargará de determinar al ganador haciendo un recorrido mediante un for, de los valores con los cuales se obtiene la victoria mediante una condición if. Básicamente se encarga de determinar si la puntuación en cualquier momento es una puntuación ganadora y regresar un verdadero.

ganador = function(puntos) {
for (var i=0;i<ganar.length;i+=1) {

                                                   if ((ganar[i]&puntos)==ganar[i]){
                                                                      return true;
                                                            }
                          }
                       return false;
              };

Esperamos que este código sirva para entender el uso de algunas funciones y entender el callback entre funciones. Saludos!

Written by chuyrdz

septiembre 29, 2014 at 8:17 am

Publicado en CSS, HTML, JQuery

Tagged with , ,

Galería de imágenes con JQuery

leave a comment »

A continuación se muestra un ejemplo de galería de imágenes utilizando el efecto de desvanecimiento y difuminación, utilizando estilos, y jquery.

Esta imagen muestra el diseño de la pagina en si.

imagen general de la pagina

imagen general de la pagina

Aquí se puede observar el efecto que se aplica, al hacer clic sobre una imagen aparecerá dicha imagen en el recuadro de la derecha (efecto de desvanecimiento) mientras el resto de las imágenes no seleccionadas se difuminan.

al dar click se aprecian estos efectos

al dar click se aprecian estos efectos

1) hacer referencia a la librería de jquery

<script src=http://code.jquery.com/jquery-1.11.0.min.js&#8221;></script>


2) editaremos la parte de los estilos que para dar formato a la pagina

/*referencia a una fuente de google*/

href=’http://fonts.googleapis.com/css?family=Henny+Penny&#8217; rel=’stylesheet’ type=’text/css’/>

<style type=”text/css”>

/*clase que edita el logo de inicio de la pagina*/


.principal{
width:200px;
height:200px;
}

/*clase que edita el titulo de la pagina */


.titulo{
width:1000px;
height:200px;
margin-top:-200px; margin-left:200px;
text-align:center;
font-size:80px;
color:white;
font-family: ‘Henny Penny’, cursive;
}

/*clase que edita el tamaño y borde que tiene cada imagen del menú (imágenes pequeñas)*/

.imCh2{
width:100px;
height:100px;
border:thin orange solid;
}

/*clase que edita el div que contiene cada una de las imágenes pequeñas*/

.imCh{
width:103px;
height:103px;
float:left;
}

/*clase que edita el div que contiene la imagen grande */

.imG{
width:400px;
height:400px;
margin-top:-425px;
margin-left:450px;
border:thin gray dashed;
}

/*clase que edita el tamaño de la imagen grande (imagen del efecto de desvanecimiento) */

.imG2{
width:400px;
height:400px;
}

/*clase que edita los títulos de separación en el menú*/


.subtitulos{
width:200px;
color:white;
text-align:center;
font-size:25px;
}

/*edita el cuerpo de la pagina*/

body{
background-color:black;
margin: 50px;
}


3) dar forma a la pagina utilizando html (body)

/*se crea el titulo con el logo de la pagina*/

Bienvenido a Hogwarts!

</div>

 

/*se crea el menú de imágenes (para este caso son 8 y 2 subtitulos) cabe mencionar que para que este código funcione deben agregarse directorios reales en el atributo src de las imágenes*/



Casas






Profesores






</div>

 

/*colocamos la imagen grande que es la que va a ir apareciendo dependiendo de la imagen seleccionada (por default en este ejemplo se utiliza otra imagen)*/


4)Ahora si editaremos los efectos con jquery

$(document).ready(funcion);

/*esta función genera el desvanecimiento y reaparición de cada una de las imágenes pequeñas osea el menú (desvanecer y reaparecer la imagen duran en conjunto el mismo tiempo del efecto de la imagen grande) */

function desvanece(){
$(“.imCh2”).each(function(){ 
/*se indica que para cada imagen del menú se realizaran las sig. animaciones*/

$(this).animate({opacity:0.15},10,function(){
 /*opaca la imagen en un tiempo de 10 ms*/

$(this).delay(900).animate({opacity:1},0); 
/*detiene la imagen opacada por 0.9 seg y luego la reaparece */

});
});
}

/*función principal donde se revisa sobre cual imagen se dio clic y se implementan las animaciones*/

function funcion(){


$(“.imCh2”).click(function(event){ 
/*se revisa el clic en cualquiera de las imágenes*/

$(“.imG2″).css({display:”none”});  
/*desaparece la imagen grande que se encuentre desplegada*/

var im=$(this).html($(this).attr(“src”)).text(); 
/*de la imagen donde se dio clic (this) se recupera el atributo src y se convierte en una cadena*/

switch(im){  
/*este switch se utiliza para aparecer un fondo diferente para cada una de las imágenes intercalado en el efecto*/


case “g.jpg”:$(“.imG”).css({background:”#6E1B17″}); break;
case “s.jpg”:$(“.imG”).css({background:”#386C26″}); break;
case “h.jpg”:$(“.imG”).css({background:”#94681E”}); break;
case “r.jpg”:$(“.imG”).css({background:”#072466″}); break;
case “dom.jpg”:$(“.imG”).css({background:”#4E6A81″}); break;
case “mcgo.jpg”:$(“.imG”).css({background:”#121C0D”}); break;
case “snape.jpg”:$(“.imG”).css({background:”black”}); break;
case “hagrid.jpg”:$(“.imG”).css({background:”#69493A”}); break;
}

/* aquí se aplica el efecto de aparecer la imagen grande gradualmente (fadeIn) , antes de que aparezca la imagen se ve el color de fondo seleccionado*/

$(“.imG2”).attr(“src”,im).fadeIn(1000);

/*manda llamar la función desvanece (explicada arriba)*/

desvanece();

/*debido a que desvanece() opaca todas las imágenes del menú con la sig. instrucción reaparece la imagen sobre la que se dio clic, este efecto tiene un tiempo de 0 seg para que no se note la transición*/

$(this).animate({opacity:1},0);
});
}




NOTA1: recordar que los script y style van dentro del <head>

NOTA2: la librería de jquery de la forma que aparece en este blog solo funciona al estar conectado a Internet, si se va a utilizar sin Internet es preciso descargar y guardar la librería en el mismo directorio donde se guardará la pagina.

Written by chuyrdz

septiembre 29, 2014 at 8:14 am

Publicado en CSS, HTML, JQuery

Tagged with , ,

Slider de imágenes con diferentes efectos (JQuery).

Vamos a realizar un pequeño slider de transición de imágenes ,las cuales tendremos opciones en la parte de abajo para hacer clic, cuando suceda esto cada botón tiene una animación diferente, de igual manera tendremos un listón que despliega una descripción de la fotografía.

Paso 1.

Necesitamos agregar la librería de JQuery, ponemos la siguiente línea de código para cargarla de Internet.

Paso 2.

Para que funcione nuestro programa JQuery necesitamos abrir un script e iniciar de la siguiente manera:

                                                                                                           

$(document).ready(function(){ Aquí van todas nuestras animaciones})  

Paso 3. Programación JQuery. Funcionamiento del código.

Detección si se hace clic:

Para cada una de las animaciones primero revisamos si se da clic para eso utilizamos la siguiente función. $(‘.nuestraboton’).click(function({ “aquí va nuestras acciones si se dio clic”}));

Otras funciones

$(‘.formato .imagenes:first’).    Cargamos el contenedor de las clases (formato), accedemos al primer div que encuentre con la clase llamada imágenes (.imagenes:first);

fadeOut(100). Desvanece la imagen en 100 ms.

next(‘.imagenes’).  Continua con la transición, avanza al siguiente div de clase imágenes.

fadeIn(1000).    Empieza a aparecer poco a poco en 1000 ms.

.end().appendTo(‘.formato’); En otra instrucción que utilizaremos mandamos lo que fue la primera imagen al final, es decir como una cola circular, volvemos a formar la imagen es lo hace la instrucción .appendTo(), es sucede cada que se da un clic.

end().  Lo que hace en realidad es resetear el conteo que hicimos avanzar con la instrucción next y obviamente por que se realizo clic.

slideUp(0)  Oculta el elemento que le estemos indicando a 0ms.

slideDown(1000)  Despliega el elemento, con un movimiento hacia abajo en 1000ms.

Animate

animate().  Lo que hace es dar animaciones por medio de CSS, cambiando sus propiedades por lapsos de tiempo.

$(‘.ClaseAnimar’).animate({propiedadCSS: valor}, tiempo);

En las 4 animaciones tenemos animate():

$(‘.por’). La clase por nos maneja el listón de la descripción.

$(‘.imagenes’). La clase donde están contenidas las imágenes.

En la animación 1:

$(‘.boton1’).click(function(){
$(‘.formato .imagenes:first’).fadeOut(100) A partir de la imagen que encuentra en la primera posición la desvanece en 100ms 
.next(‘.imagenes’).fadeIn(1000).end().appendTo(‘.formato’);  Avanza a la siguiente imagen y la aparece en 1000ms, y manda al final la imagen
$(‘.por’).animate({width:0,fontSize:0},0);  En 0ms, el ancho lo deja en 0
$(‘.por’).animate({width:500},1000);         En 1000ms, el ancho lo incrementa a 500px
$(‘.por’).animate({fontSize:30},100);         En 100ms el tamaño de la fuente lo incrementa a 30px.
});

En la animación 2:

$(‘.boton2’).click(function(){
$(‘.formato .imagenes:first’).fadeOut(1000) A partir de la imagen que encuentra en la primera posición la desvanece en 1000ms 
.next(‘.imagenes’).slideUp(0)                            Avanza a la siguiente imagen y la sube en 0ms,
.slideDown(1000).end().appendTo(‘.formato’);  Baja la imagen en 1000ms y la manda al final,
$(‘.por’).animate({bottom:0,fontSize:0},0);    La iniciamos con bottom en 0 y letra en 0, esto lo realiza en 0 ms.
$(‘.por’).animate({bottom:20},1000);             Incrementamos bottom en 20, en 1000ms.
$(‘.por’).animate({fontSize:30},100);         Incrementamos el tamaño de la letra en 100ms.

});

En la animación 3:

var x= $(‘.formato’).width(),     Nos regresa el valor de el ancho de el contenedor.
x2= $(‘.formato’).height();        Nos regresa el alto del contenedor.
$(‘.boton3’).click(function(){
$(‘.formato .imagenes:first’).fadeOut(1000) A partir de la imagen que encuentra en la primera posición la desvanece en 1000ms
.next(‘.imagenes’).fadeIn(0).end().appendTo(‘.formato’); Avanza a la siguiente imagen y la aparece en 0ms, y manda al final la imagen
$(‘.imagenes’).animate({width:0,height:0},0);  Iniciamos el ancho y alto en 0, en 0 ms.
$(‘.imagenes’).animate({width:x,height:x2},1000);   Incrementamos al ancho y alto del contenedor.
$(‘.por’).animate({fontSize:0,top:0},0);         Ponemos el listón en 0 de la fuente y 0 en top, en 0 ms.
$(‘.por’).animate({top:307},1000);                Incrementamos el top en 307px, en 1000ms.
$(‘.por’).animate({fontSize:30},100);});         Incrementamos la fuente en 100ms.

Animación 4

$(‘.boton4’).click(function(){
$(‘.formato .imagenes:first’).fadeOut(1000)  A partir de la imagen que encuentra en la primera posición la desvanece en 1000ms
.next(‘.imagenes’).fadeIn(0).end().appendTo(‘.formato’); Avanza a la siguiente imagen y la aparece en 0ms, y manda al final la imagen

$(‘.imagenes’).animate({height:’400px’,opacity:’0.4′},1000);   Aumentamos el alto a 400px, y opacidad de 0.4, en 1000ms.
$(‘.imagenes’).animate({width:’1500px’,opacity:’0.8′},1000);  Aumentamos el ancho a 1500px y opacidad 0.8, en 1000ms.
$(‘.imagenes’).animate({width:x,height:x2},1000);                  Los regresamos al tamaño original en 1000ms.
$(‘.por’).animate({fontSize:0,width:0},0);                       La letra y ancho los reducimos a 0px, en 0 ms.
$(‘.por’).animate({width:500},2000);                              El ancho incrementa en 500px, en 2000ms.
$(‘.por’).animate({fontSize:30},100);});                          Incrementa la letra en 100ms

Paso 4. Programación CSS

Recordemos que nuestros estilos se crean así:

<style type=”text/css”> .unaClase{estilos:valor;}</style>

Código

body{ margin:0;}  //Margen del body en 0

.imagenes{        //CSS de imagenes
width:1035px;
height:375px;
position:relative; }

.formato{         //CSS de contenedor
width:1035px;
height:375px;
position:relative;
overflow:hidden;
margin:0 auto;
border-radius:10px 10px 10px 10px;}

.marco{    //Marco del contenedor
border:5px #CCCCCC solid; } 

.parabotones{   //Contenedor botones
width:1045px;
height:60px;
margin:0 auto;
}

.boton{               //CSS para botones
position:relative;
font-family:Tahoma, Geneva, sans-serif;
font-size:0.7em;
color:#FFF;
width:150px;
height:30px;
border:2px solid #CCCCCC;
background-color:maroon;
padding:5px;
opacity: 0.6;
border-radius:10px 10px 10px 10px;
line-height:20px;
text-align:center;
margin-top:0px;}

.boton1{float:right; cursor:pointer;}
.boton2{float:right; cursor:pointer;}
.boton3{float:right; cursor:pointer;}
.boton4{float:right; cursor:pointer;}
.por {  //CSS Listón de descripción de imágenes
position: absolute;
bottom:10px;
display:block;
opacity: 0.6;
width: 500px;
height: 50px;
margin:0;
padding: 5px 0;
color: #eee;
border-bottom:2px solid #CCCCCC;
border-top:2px solid #CCCCCC;
border-right:2px solid #CCCCCC;
background-color:maroon;
font-size: 30px;
line-height:40px;
text-align:center;
border-radius:0px 10px 10px 0px;}

Paso 5. HTML

<body>


LAGO


LAGO FRIO


MONTAÑAS


VISTA A LA ISLA


ISLA


PUENTE CON VISTA AL LAGO


PECES


CON VISTA AL LAGO


</div>


Clic siguiente efecto1


Clic siguiente efecto2


Clic siguiente efecto3


Clic siguiente efecto4


</div>
</body>

De esta manera construimos un sencillo Slider, con diferentes animaciones.

Written by chuyrdz

septiembre 24, 2014 at 11:26 am

Publicado en CSS, HTML, JQuery

Creación de menú (UL) desde cero – 4 Sticky Menu.

with 2 comments

En el post anterior hicimos un menú horizontal, con posibilidad de agregar submenus verticales para cada opción del menú.

Ahora, agregaremos un poco de funcionalidad al menú, haremos que este menú este siempre visible sin importar que tan larga este la pagina y cuanto se scrollee, a este efecto se le conoce como StickyMenu (Menú pegajoso).

Comencemos……

1.- Estructura básica del menú. Para este ejemplo, utilizaremos la estructura generada en el primer ejercicio.

<div class=”contenedorMenu”>        
                <ul class=”menu”>
                    <li><a href=”#inicio”>Inicio</a></li>            
                    <li><a href=”#seccion1″>Sección 1</a></li>
                    <li><a href=”#seccion2″>Sección 2</a></li>
                    <li><a href=”#seccion3″>Sección 3</a></li>
                </ul>                        
            </div>

2.- Estilos para el menú. Utilizaremos los estilos generados en el primer ejercicio.

<style type=”text/css”>
            body{ margin:0px;}                       
            /*Estilos para el contendor del menu*/            
            .contenedorMenu
            {
                background: #E321A6;   /*Color de fondo para el menu*/
                width: 100%; /*ancho del menu */
            }
            /*Estilos para el elemnto ul*/
            .menu
            {
                list-style: none;  /*Quitar viñetas de la lista*/
                padding: 0px;    /*Quitar sangría de la lista */
                height: 30px;    /*Establecer el ancho del menu*/
                line-height: 30px; /*Centrar el contenido al medio*/
                margin: 0px;/*Quitar espacios arriba y abajo*/
            }
            /*Estilos para los items de menu*/
            .menu li
            {
                float:left;    /*alinear los elemntos a la izquierda*/
                width:100px;    /*Establecer el ancho de cada item*/
                text-align:center;    /*centrar contenido en texto*/
            }
            /*Estilos para el enlace dentro de los Items de menu*/
            .menu li a
            {
                text-decoration: none;    /*Quitar el subrayado*/
                color: white;    /*Color de fuente*/
                display: inline-block;    /*Expandir el enlace a lo alto del LI*/
                width: 100%;    /*Expandir el enlace a lo largo del LI*/
            }
            /*Estilos para los enlaces cuando el mouse se coloca sobre ellos*/
            .menu li a:hover
            {
                 background-color:white;    /*Color de Fondo*/
                 color:#E321A6;    /*Color de fuente*/
            }
            /*Estilos sticky*/
            .sticky{position: fixed; top: 0px; width: 1000px;}
        </style>

3.- Agregar elementos adicionales a la pagina. Para mostrar como funciona este ejercicio, incorporaremos un encabezado y saltos de linea a la pagina. Como encabezado agregaremos un div, y los saltos de linea se incorporaran al final de la página.

<div class=”pagina”>
            <div class=”encabezado”></div>
            <div class=”contenedorMenu”>        
                <ul class=”menu”>
                    <li><a href=”#inicio”>Inicio</a></li>            
                    <li><a href=”#seccion1″>Sección 1</a></li>
                    <li><a href=”#seccion2″>Sección 2</a></li>
                    <li><a href=”#seccion3″>Sección 3</a></li>
                </ul>                        
            </div>
            <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
            <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
            <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
            <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
            <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
        </div>

Y sus correspondientes estilos:

            /*Estilos generales para la pagina*/
            .pagina{ width: 1000px; margin: 0 auto;}
            .encabezado{ width:100%; background-color: #456789; height: 200px;}

4.- Agregar la referencia a la API de JQuery. De preferencia utilicemos el sitio oficial de JQuery y la version mas reciente para trabajar nuestros proyectos.

             <script src=”http://code.jquery.com/jquery-1.11.0.min.js”></script&gt;

5.- Implementar el código JQuery. Lo que queremos lograr es lo siguiente:

-Inicialmente el menú debe verse debajo del encabezado y, mientras se scrollea hacia abajo recorrerse en la ventana, como normalmente ocurriría.
-Cuando el scroll rebase el ancho del encabezado, el menú cambiará de estilo para permitir que siempre este visible al tope de la página.

Esto se implementa así:

<script type=”text/javascript” >
            $(document).ready(function () {
                    /*Vincular el evento scroll a la ventana*/
                    $(window).scroll(function () {
                            //Obtener el alto del encabezado
                            var distancia = $(“.encabezado”).height();
                            //Verificar si se ha scrolleado lo sifuciente para que menú se vea en el tope del sitio                            
                            if( $(this).scrollTop() > distancia )
                            {
                                /*Si el scroll llego a la posicion del menu, dejar el menu al tope con posicion fija*/
                                $(“.contenedorMenu”).addClass(“sticky”);
                            }
                            else
                            {
                                /*Si el scroll esta por encima del menu, quitar la posicion fija en el tope*/
                                $(“.contenedorMenu”).removeClass(“sticky”);
                            }
                    });
            });
        </script>

Donde la clase sticky, se define:

/*Estilos sticky*/
.sticky{position: fixed; top: 0px; width: 1000px;}

Esto permite que el menú, siempre este visible sin importar que tan larga sea la página.

Menu4aMenu4b

Gracias

Written by chuyrdz

septiembre 12, 2014 at 1:35 pm

Publicado en CSS, HTML, JQuery

Tagged with , , , ,