Una de las cosas que más deseamos en nuestros sitios web, es poder modificar los valores visuales de los elementos DOM (elementos HTML), para crear animación, o efectos que le dan más estética a nuestro sitio, y para ello necesitamos manipular las propiedades de nuestra hoja de estilo, para este tipo de cosas jquery nos ofrece la función (método) de nombre css().
Para poder utilizarla, debemos utilizar el selector sobre el o los elementos que deseamos modificar sus propiedades de estilo, seguido de esta función. Esta función se puede utilizar de distintas formas, y comenzaremos por la forma más simple, obtener un valor en específico de un atributo de estilo, y es de la siguiente manera:
Código HTML
<img id="imagen" src="https://hdeleon.net/wp-content/uploads/2014/01/cropped-cropped-logo1.jpg" style='width:800px;height:120px' />
Código Jquery
alert($('#imagen').css('width')); //obtenemos en un alert el width de nuestra imagen
En este ejemplo podemos observar en una ventana alert, el ancho de nuestra imagen, ahora veamos como manipular la imagen con el siguiente código:
Código HTML
<img id="imagen" src="https://hdeleon.net/wp-content/uploads/2014/01/cropped-cropped-logo1.jpg" style='width:800px;height:120px' /> <input type="button" value="aumentar tamaño imagen" onclick="aumentaTamano();" />
Código Jquery
function aumentaTamano(){ //obtenemos el viejo tamaño de ancho y alto tamanoWidth=$('#imagen').css('width') tamanoHeight=$('#imagen').css('height') //aumentamos el tamaño obtenido mas 10 pixeles tamanoWidth=parseInt(tamanoWidth)+parseInt(10); tamanoHeight=parseInt(tamanoHeight)+parseInt(10); //asignamos el nuevo tamaño $('#imagen').css('width',tamanoWidth) $('#imagen').css('height',tamanoHeight) }
En este código vemos como utilizar la función para asignar un nuevo valor a las propiedades, invocando la función aumentaTamano(), la cual ejecuta al presionar el botón (<input>), otorgamos un nuevo ancho y un nuevo alto y lo asignamos a través de la función css(), recibiendo esta como argumento el nombre de la propiedad de estilo y el nuevo valor, pero aun así hay una manera más fácil de hacerlo; la función css() nos permite mandar varios valores a varias propiedades de estilo, recibiendo los atributos por el formato json; para los que no sepan que es json, simplemente es un formato que se utiliza en los lenguajes de programación para enviarse mensaje entre ellos (como lo venía haciendo el formato xml), jquery aprovecha esta característica, y también puede recibir sus atributos en este formato, facilitando poder enviar todo lo que deseamos modificar en la misma línea, como podemos ver a continuación.
Nota: Por si no conocen la función parseInt() de javascript, esta función convierte el valor de la variable a entero, si yo no utilizo esta función lo que obtendríamos al utilizar el operador “+” seria una concatenación, no una suma.
Código HTML
<img id="imagen" src="https://hdeleon.net/wp-content/uploads/2014/01/cropped-cropped-logo1.jpg" style='width:800px;height:120px' /> <input type="button" value="disminuye tamaño imagen" onclick="disminuyeTamano();" />
Código Jquery
function disminuyeTamano(){ //obtenemos el viejo tamaño de ancho y alto tamanoWidth=$('#imagen').css('width') tamanoHeight=$('#imagen').css('height') //aumentamos el tamaño obtenido mas 10 pixeles tamanoWidth=parseInt(tamanoWidth)-parseInt(10); tamanoHeight=parseInt(tamanoHeight)-parseInt(10); //aplicamos los dos cambios en la misma linea, utilizando json $('#imagen').css({'height':tamanoHeight, 'width':tamanoWidth}) }
En lugar de invocar dos veces la función css(), mando los dos atributos en la misma función utilizando json, y dentro de esta funcion se encuentra el formato json “{‘height’:tamanoHeight,’width’:tamanoWidth}”, poniendo las llaves de abertura y cerradora “{}” y dentro de estas los atributos en comillas (o sin ellas, en el caso de los atributos no los valores), seguido de dos puntos “:” que equivalen al igual (=) y separando cada atributo por coma.
Si desean ver este código en ejecución den clic aquí.