Passa al contingut principal

Mejorando la usabilidad de un sitio web con jQuery

Mejorando la usabilidad de un sitio web con jQuery:
Nuevamente tenemos a José Vicente Carratalá con un excelente artículo en exclusiva para video2brain.
El objetivo de este artículo es demostrar cómo la tecnología puede contribuir fácilmente a la mejora de la usabilidad de un sitio web.
Al planificar el diseño de un sitio web, uno de los principales problemas con el que nos encontramos es el de la anchura del sitio con respecto a las múltiples resoluciones de pantalla de nuestros usuarios.
En el caso que trato en este artículo, he revisado en primer lugar el analytics del sitio web www.comotocar.es, para revelar las siguientes resoluciones de pantalla:
Analytics

La idea, teóricamente, es estudiar las resoluciones con las que entran mis usuarios para crear una resolución óptima. Sin embargo, en la práctica, vemos cómo las resoluciones con las que entran los usuarios del sitio web son tan dispares como para ir desde 1920 x 1080 hasta 1024 x 768. Es decir, una variación de prácticamente el 100% en el eje X horizontal.
Al probar el sitio en diferentes resoluciones, el resultado es el siguiente:

A 1920 x 1080 el espacio sobrante en pantalla es demasiado
A1920x1080En las resoluciones de 1280 x 720 y 1360 x 768 es donde el sitio web mejor se ve, ya que he apostado por un término medio
Comparativo 1280x720

Sin embargo, en resoluciones inferiores, el contenido queda gravemente cortado
Comparativo 800x600
Evidentemente, reducir el tamaño de mi maquetación perjudicaría a los usuarios de pantallas más grandes, y viceversa. Así pues, ¿qué puedo hacer para que mi maquetación se vea igual en todos los monitores?
Ya sabemos que con CSS3 disponemos del parámetro «media» que nos permite adaptar nuestra web a varios rangos de pantalla. De hecho yo soy un gran defensor del uso de «media» en CSS3, como pudisteis ver en el eSeminar video2brain Desarrollo de webapps para dispositivos móviles, sobre todo para crear maquetaciones para múltiples dispositivos. Pero este caso es ligeramente diferente, ya que no estoy consierando múltiples dispositivos, sino múltiples resoluciones de un mismo dispositivo (una pantalla de ordenador). CSS3 media sigue siendo una opción válida, pero nos obliga a crear varios archivos CSS, lo cual, en el fondo, no deja de ser una duplicación o triplicación de trabajo.
Para este caso he optado por una solución diferente:

Voy a usar la nueva función de CSS3 transform:scale. Mediante transform:scale, puedo ampliar y disminuir el tamaño de todo mi sitio web de manera uniforme, sin tener que reprogramar todo el CSS para cada resolución. De esta forma, introduciendo una simple instrucción CSS, puedo ampliar y disminuir el tamaño de la maquetación.
En mi CSS introduzco (desarrollando en principio para Chrome/Safari):
html{



–webkit-transform-origin:50% 0%;

–webkit-transform:scale(1.5,1.5);



}
Y esto hace que la página se vea un 50% más grande en cualquier monitor, lo que beneficia por ejemplo a la resolución de 1920 x 1080, ya que ya no se pierde tanto espacio alrededor.

Sin embargo, estoy perjudicando gravemente al resto de resoluciones.
Podría poner esto:
html{



font-family:arial;

–webkit-transform-origin:50% 0%;

–webkit-transform:scale(0.5,0.5);



}
Lo que haría que la web se viera correctamente en 1024 x 768 e incluso en 800 x 600, pero perjudicaría gravemente a las resoluciones superiores.
Lo que voy a hacer, por tanto, es hacer que ese factor de escala sea dinámico. ¿Cómo lo puedo hacer? Por ejemplo con Javascript/jQuery.

Elimino el CSS de transform, y en la etiqueta script de javascript escribo:
var x;

x=$(document);

x.ready(inicio);

function inicio(){

var y;

y=$(«html»);

y.css(«-webkit-transform-origin»,«50% 0%»);

y.css(«-webkit-transform»,«scale(0.5,0.5)»);

}
Tras lo cual, he conseguido pasar el código CSS a Javascript — jQuery.

A continuación, creo una regla de tres, en la que pongo:
var x;

x=$(document);

x.ready(inicio);

function inicio(){

var y;

y=$(«html»);

y.css(«-webkit-transform-origin»,«50% 0%»);

y.css(«-webkit-transform»,«scale(«+(window.innerWidth/1400)+»,»+(window.innerWidth/1400)+»)»);

}
Con lo que habremos conseguido que la maquetación se vea igual en cualquier resolución de pantalla, usando Chrome o Safari.

La pregunta más evidente que puede surgir es: ¿De dónde sale el parámetro 1400? Respuesta: La web original estaba diseñada para verse óptimamente en una pantalla de 1400 x 800. Por tanto, si window.innerWidth es igual a 1400, el factor será 1400/1400=1, con lo que la web se escalará en el resto de resoluciones para verse como originalmente se veía a 1400 x 800 píxeles. Evidentemente podemos jugar con este valor para personalizar la escala de visualización.
El siguiente paso es establecer compatibilidad con el resto de navegadores:
var x;

x=$(document);

x.ready(inicio);

function inicio(){

var y;

y=$(«html»);

y.css(«-webkit-transform-origin»,«50% 0%»);

y.css(«-webkit-transform»,«scale(«+(window.innerWidth/1400)+»,»+(window.innerWidth/1400)+»)»);

y.css(«-moz-transform-origin»,«50% 0%»);

y.css(«-moz-transform»,«scale(«+(window.innerWidth/1400)+»,»+(window.innerWidth/1400)+»)»);

y.css(«-o-transform-origin»,«50% 0%»);

y.css(«-o-transform»,«scale(«+(window.innerWidth/1400)+»,»+(window.innerWidth/1400)+»)»);

y.css(«-ms-transform-origin»,«50% 0%»);

y.css(«-ms-transform»,«scale(«+(window.innerWidth/1400)+»,»+(window.innerWidth/1400)+»)»);

}
El único problema que nos quedaría por solucionar, es añadir compatibilidad con versiones anteriores a Internet Explorer 9, que no soportaban ningun tipo de transform:scale.
En este caso estamos de suerte, ya que Microsoft soporta una propiedad no estándar de CSS llamada «zoom», que también soportan Chrome y Safari, pero no Firefox y Opera.
De esta manera, podríamos usar Zoom para Chrome, Safari e Internet Explorer, y transform:scale para Firefox y Opera, quedando asi:
var x;

x=$(document);

x.ready(inicio);

function inicio(){

var y;

y=$(«html»);

y.css(«zoom»,(window.innerWidth/1400));

y.css(«-moz-transform-origin»,«50% 0%»);

y.css(«-moz-transform»,«scale(«+(window.innerWidth/1400)+»,»+(window.innerWidth/1400)+»)»);

y.css(«-o-transform-origin»,«50% 0%»);

y.css(«-o-transform»,«scale(«+(window.innerWidth/1400)+»,»+(window.innerWidth/1400)+»)»);

}
A partir de este momento, por tanto, podremos comprobar que la web se visualiza con las mismas proporciones independientemente de la resolución de pantalla que tengan nuestro usuarios, ajustándose automáticamente en monitores pequeños, y ampliándose automáticamente en monitores de gran resolución.
En definitiva, lo que hemos conseguido con estas 11 líneas de Javascript+CSS es posibilitar que una web se visualice exactamente igual independientemente de la resolución del navegador con el que se acceda, demostrando de esta manera dos cosas:
1.-La programación dinámica, bien usada, sirve para mejorar la experiencia del usuario.

2.-El coste de desarrollo e implementación de mejoras en la usabilidad de un sitio web, como la que acabamos de ver, no tiene por que ser elevado.
Cursos relacionados: Usabilidad, jQuery, HTML5 y CSS3.

Comentaris

Entrades populars d'aquest blog

10 alternativas a Cuevana para ver películas online

10 alternativas a Cuevana para ver películas online : Durante este último tiempo, en Cuevana se sucedieron varios “problemas” por los cuales hubo que ajustar algunas cosas antes de tiempo (como el rediseño del sitio), que dejaron a algunos usuarios ciertos problemas para acceder a las películas o series del portal. Pero realmente esto es algo que no incumbe a los usuarios y, como sabemos, existen muchas otras alternativas a Cuevana dando vueltas por Internet, que intentaremos presentar aquí mismo. Los sitios que repasaremos funcionan del mismo modo que Cuevana, mediante la instalación de un plugin que permite visualizar los videos de Megaupload o WUShare, entre otros servicios, en una calidad de imágen realmente excelente. Tal como sucede con el más popular servicio, todos ellos tienen publicidad que en algunos casos resulta insoportable, pero como dice Federico en DotPod “a caballo regalado no se le miran los dientes”. Alternativas a Cuevana 1. Moviezet Posiblemente el mejor clon d

Sitio alternativo a Cuevana: Moviezet

Sitio alternativo a Cuevana: Moviezet : Nadie se quiere enfrentar al monstruo Cuevana , tan popular por estos días que es casi imposible ver tu serie favorita o tu película sin tener problema de saturación de tráfico. Pero hay proyectos muy sanos y prometedores, sobre todo porque están basados como una muy buena alternativa . Señores estamos hablando obviamente de un sitio alternativo a Cuevana, llamado Moviezet. Como bien dijimos, Moviezet es una excelente alternativa a Cuevana, ya que podremos ver películas y series de forma gratuita sin necesidad de que existan cortes – al mejor estilo Megavideo – y que podremos tener un seguimiento, es decir, si miramos una serie, podremos ver toda la lista con los capítulos disponibles. Lo que tiene de novedoso este sitio web Moviezet , es que tiene películas y series que quizá en Cuevana no se puedan conseguir, pero atención, que puede suceder lo mismo, pero al revés. Entonces aquí intervenimos nosotros y te daremos un sabio consejo, para no

Learn Composition from the Photography of Henri Cartier-Bresson

“Do you see it?” This question is a photographic mantra. Myron Barnstone , my mentor, repeats this question every day with the hopes that we do “see it.” This obvious question reminds me that even though I have seen Cartier-Bresson’s prints and read his books, there are major parts of his work which remain hidden from public view. Beneath the surface of perfectly timed snap shots is a design sensibility that is rarely challenged by contemporary photographers. Henri Cartier-Bresson. © Martine Franck Words To Know 1:1.5 Ratio: The 35mm negative measures 36mm x 24mm. Mathematically it can be reduced to a 3:2 ratio. Reduced even further it will be referred to as the 1:1.5 Ratio or the 1.5 Rectangle. Eyes: The frame of an image is created by two vertical lines and two horizontal lines. The intersection of these lines is called an eye. The four corners of a negative can be called the “eyes.” This is extremely important because the diagonals connecting these lines will form the breakdown