domingo, 17 de febrero de 2013

AJAX y jQuery

AJAX es un conjunto de tecnologías tradicionales, como el JavaScript, el HTML y el XML, para crear aplicaciones asíncronas. Es el acrónimo de Asynchronous JavaScript And XML. Esta tecnología permite mandar y recibir información (entiéndase datos) desde el background del navegador por medio del objeto XMLHTTPRequest, el cual se encuntra implementado desde 2004 en todos los principales navegadores (incluso en Internet Explorer).

jQuery provee algunos métodos para aprovechar la funcionalidad AJAX

Con estos métodos se puede solicitar información en texto, HTML, XML o JSON al servidor remoto usando metódos POST y GET, y podrá desplegar esta información en cualquier elemento HTML.


Modificar las dimensiones de un elemento con width y height

Podemos cambiar las dimensiones de un elemento en web por medio de los métodos width y height, asi como cambiar dichos atributos por medio del métod attr. Estos métodos no tienen un efecto de animación.

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Width Height</title>
<script src="jquery.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(inicio);
function inicio(){
    $("#chica").click(onChica);
    $("#mediana").click(onMediana);
    $("#grande").click(onGrande);
}
function onChica(){
    $("#afro").width(400).height(251);
}
function onMediana(){
    $("#afro").width(800).height(502);
}
function onGrande(){
    $("#afro").width(1200).height(754);
}
</script>
</head>
<body>
<input type="button" id="chica" value="Chica"/>
<input type="button" id="mediana" value="Mediana"/>
<input type="button" id="grande" value="Grande"/>
<br>
<img src="imagenes/afrodita.jpg" id="afro"/>
<p></p>
</body>
</html>


Ejemplo: http://pacoarce.com/jQuery/WidthHeight.html
urso completo: https://www.udemy.com/jquery-y-mobile/

sábado, 16 de febrero de 2013

Efectos en jQuery

Show Hide

Dentro de los efectos con los que contamos en jQuery, se encuentra el de mostrar y oculpar cualquier elementovisual del documento DOM. Podremos hacer en forma sencilla animaciones que serían imposibles con sólo HTML.

Toogle

El efecto de toggle nos permitirá ocultar y mostrar un elemento del documento DOM de manera muy sencilla, permitiéndonos  hacer efectos interesantes con muy poco código.

Fade-in Fade-out

También contamos con el efecto de desvanecimiento, conocidos como fade-in y fade-out. Como parámetro podemos indicarle la velocidad del efecto con parámetros "slow" y "fast", asi como en número de milisegundos.

slideUp y slideDown

Otro efecto que podremos realizar con casi nada de código, es del deslizamiento de cualquier elemento hacia arriba y hacia abajo. Al igual que los otros efectos, podremos controlar su velocidad con los parámetos "slow" y "fast", asi como manejar el tiempo en milisegundos.

animate

El efecto animate es uno de los más poderosos en jQuery, pode podemos tomar una o varias atributos de un elementos y animarlos.

Con el efecto animate pomdeos animar más de una propiedad. De hecho podemos animar casi cualquier propiedad, a excepción de la propiedad de color, donde necesitamos otra librería. Si deseamos animar alguna propiedad css con guión, por ejemlo padding-top, la tenemos que convertir a CamelCase, como paddingTop. 

El efecto animate lo podemos manejar con valores relativos, es decir, pequeños incrementos que se pueden sumar o restar cuando tenemos alguna propiedad numérica. Usaremos los operadores += para incrementar y -= para decrementar.

Por medio del método animate, podemos tener una pila de animaciones y jQuery las ejecutaría de una por una, con lo cual podemos hacer animaciones más elaboradas.

stop

El método stop(), en jQuery, se utiliza para detener una animación o efecto antes de que se termine.

El método stop () funciona para todas las funciones de efectos jQuery, incluyendo animaciones de deslizamiento, la decoloración ylas animaciones customizadas.
El parámetro opcional (StopAll) especifica si también la cola de animación debe ser detenida o no. El valor predeterminado es falso, lo que significa que sólo la animación activa se detendrá, permitiendo que las animaciones en cola para ser realizado posteriormente.

El parámetro opcional
goToEnd especifica si o no para completar la animación actual inmediatamente. El valor predeterminado es false.

Así que, por defecto, el método stop () mata a la animación actual que se realiza en el elemento seleccionado.




viernes, 15 de febrero de 2013

Modificar las dimensiones del modelo de caja con jQuery

El manejo de las dimensiones del modelo de caja en jQuery es muy claro, ya que cada una de las dimensiones tiene su propio método, simplificándonos la vida, al contrario de HTML, que parece un tema para iniciados.


Los métodos son los siguientes:

  • width(): el ancho del elemento sin padding, border ni margen.
  • height(): la altura del elemento sin padding, border ni margen.
  • innerWidth(): el ancho del elemento con el padding,pero sin el border ni margen.
  • innerHeight(): la altura del elemento con el padding,pero sin el border ni margen.
  • outerWidth(): el ancho del elemento con el padding y el borde, pero sin el margen.
  • outerHeight(): la altura del elemento con el padding y el borde, pero sin el margen.
  • outerWidth(true): el ancho del elemento con el padding, el borde y el margen.
  • outerHeight(true): la altura del elemento con el padding, el borde y el margen.

Alternar clases en un elemento con el método toggleClass()

Para poder alternar una clase en un elemento del documento DOM, es decir, que con un evento apliquemos la clase, pero que también podamos quitarla, utilizamos el método toggleClass().

$("button").click(function(){
  $("h1,h2,p").toggleClass("blue");
}); 


En el siguiente ejemplo aplicamos y removemos cada clase con un botón correspondiente:

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Alternar Clases</title>
<style>
.texto{
    text-align:center;
}
.rojo{
    color:red;
}
.autor{
    text-align:right;
    font-style:italic;
    color:black;
}
.caja{
    width:300px;
    background-color:#FF9;
    border:solid 2px black;
    height:200px;
}
</style>
<script src="jquery.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(inicio);
function inicio(){
    $("#cajaBtn").click(onCaja);
    $("#autorBtn").click(onAutor);
    $("#textoBtn").click(onTexto);
    $("#borrarBtn").click(onBorrar);
    $("#rojoBtn").click(onRojo);
}
function onCaja(){
    $("div").toggleClass("caja");
}
function onAutor(){
    $("#autor").toggleClass("autor");
}
function onTexto(){
    $("p").toggleClass("texto rojo");
}
function onRojo(){
    $("p").removeClass("rojo");
}
function onBorrar(){
    $("p").removeClass("texto rojo");
    $("div").removeClass("caja");
    $("#autor").removeClass("autor");
}
</script>
</head>
<body>
<div>
<p>En el agua clara</p>
<p>que brota en la fuente</p>
<p>un lindo pescado</p>
<p>sale de repente</p>
<p id="autor">Autor anónimo</p>
</div>
<input type="button" value="Estilo caja" id="cajaBtn"/>
<input type="button" value="Estilo texto" id="textoBtn"/>
<input type="button" value="Estilo autor" id="autorBtn"/>
<input type="button" value="Borrar estilo" id="borrarBtn"/>
<input type="button" value="Quitar rojo" id="rojoBtn"/>
</body>
</html>


Ejemplo:  http://pacoarce.com/jQuery/ToggleClass.html
Curso completo: https://www.udemy.com/jquery-y-mobile/

Remover los estilos de un elemento con jQuery

Otro método que nos va a hacer de mucha utilidad es poder eliminar clases completas de un elemento del documento DOM, ya sea en tiempo de ejecución o en tiempo de autor. Para ello utilizamos el método removeClass().

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Borrar Clases</title>
<style>
.texto{
    text-align:center;
}
.rojo{
    color:red;
}
.autor{
    text-align:right;
    font-style:italic;
    color:black;
}
.caja{
    width:300px;
    background-color:#FF9;
    border:solid 2px black;
    height:200px;
}
</style>
<script src="jquery.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(inicio);
function inicio(){
    $("#cajaBtn").click(onCaja);
    $("#autorBtn").click(onAutor);
    $("#textoBtn").click(onTexto);
    $("#borrarBtn").click(onBorrar);
    $("#rojoBtn").click(onRojo);
}
function onCaja(){
    $("div").addClass("caja");
}
function onAutor(){
    $("#autor").addClass("autor");
}
function onTexto(){
    $("p").addClass("texto rojo");
}
function onRojo(){
    $("p").removeClass("rojo");
}
function onBorrar(){
    $("p").removeClass("texto rojo");
    $("div").removeClass("caja");
    $("#autor").removeClass("autor");
}
</script>
</head>
<body>
<div>
<p>En el agua clara</p>
<p>que brota en la fuente</p>
<p>un lindo pescado</p>
<p>sale de repente</p>
<p id="autor">Autor anónimo</p>
</div>
<input type="button" value="Estilo caja" id="cajaBtn"/>
<input type="button" value="Estilo texto" id="textoBtn"/>
<input type="button" value="Estilo autor" id="autorBtn"/>
<input type="button" value="Borrar estilo" id="borrarBtn"/>
<input type="button" value="Quitar rojo" id="rojoBtn"/>
</body>
</html>


Ejemplo: http://pacoarce.com/jQuery/BorrarClases.html
Curso completo: https://www.udemy.com/jquery-y-mobile/

Manipular los estilos en cascada desde jQuery

jQuery cuenta con muchos métodos con los que podemos manipular los estilos en cascada o CSS:
  • addClass() - Añade una o más clases a los elementos seleccionados.
  • removeClass() - Remueve una o más clases de los elementos seleccionados.
  • toggleClass() - Alterna entre añadir y remover una clase a los elementos seleccionados.
  • css() - Cambia o regresa el valor de un attributo CSS.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Añadir CSS</title>
<style>
.texto{
    text-align:center;
    color:red;
}
.caja{
    width:300px;
    background-color:#FF9;
    border:solid 2px black;
    height:200px;
}
.autor{
    text-align:right;
    font-style:italic;
    color:black
}
</style>
<script src="jquery.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(inicio);
function inicio(){
    $("#cajaBtn").click(onCaja);
    $("#textoBtn").click(onTexto);
    $("#autorBtn").click(onAutor);
}
function onCaja(){
    $("div").addClass("caja");
}
function onTexto(){
    $("p").addClass("texto");
}
function onAutor(){
    $("#autor").addClass("autor");
}
</script>
</head>
<body>
<div>
<p>En el agua clara</p>
<p>que brota en la fuente</p>
<p>un lindo pescado</p>
<p>sale de repente</p>
<p id="autor">Autor anónimo</p>
</div>
<input type="button" value="Estilo caja" id="cajaBtn"/>
<input type="button" value="Estilo texto" id="textoBtn"/>
<input type="button" value="Estilo autor" id="autorBtn"/>
</body>
</html>


Ejemplo: http://pacoarce.com/jQuery/PoemaCSS.html
Curso completo: https://www.udemy.com/jquery-y-mobile/