En un intento constante de ofrecer métodos alternativos para arreglar los menús, he reconstruido un menú en miniatura elástica.
¿Qué hace exactamente?
* Amplía las opciones de menú cuando se esta sobre el elemento.
* Los elementos de menú se expanden.
* Ver la demostración para ver en acción.
El HTML
Rápido y fácil, el marco general que va a utilizar es el siguiente:
El CSS
Normalmente, cuando una etiqueta div tiene que ampliar para dar cabida a más contenido, lo hace hacia abajo, añadiendo altura en la parte inferior del elemento en lugar de la parte superior. Para este menú nos quieren hacer exactamente lo contrario - cuando el usuario se desplaza sobre la miniatura debe ampliar hacia arriba (pensar sobre cómo funciona el muelle de OSX).
Vamos a ir sobre esto, haciendo uso de la posición: fijo, que básicamente nos permite "fijar" los elementos en el fondo. Analicemos por los elementos.
/* The container which the menu is "locked" to the bottom of */ #menuwrapper{ position:relative; height:210px; } /* Fixes the whole menu to the bottom of the parent div */ #menu{position:absolute; bottom:0;} /* Each individual menu item fixed to the bottom with display:inline-table to create elasticity */ .menuitem{ position:fixed relative; bottom:0px; display:inline-table; }
El jQuery
en mi ejemplo sirve a dos propósitos:
1. Cambiar el tamaño de las imágenes a tamaños más pequeños cuando las cargas de la primera página.
2. Animar a las imágenes de mayor tamaño cuando sobrevolaban.
He aquí el fragmento de código que hace todo esto posible (con comentarios en línea para las explicaciones):
1. Cambiar el tamaño de las imágenes a tamaños más pequeños cuando las cargas de la primera página.
2. Animar a las imágenes de mayor tamaño cuando sobrevolaban.
He aquí el fragmento de código que hace todo esto posible (con comentarios en línea para las explicaciones):
$(document).ready(function(){ $('.menuitem img').animate({width: 100}, 0); //Set all menu items to smaller size $('.menuitem').mouseover(function(){ //When mouse over menu item gridimage = $(this).find('img'); //Define target as a variable gridimage.stop().animate({width: 200}, 150); //Animate image expanding to original size }).mouseout(function(){ //When mouse no longer over menu item gridimage.stop().animate({width: 100}, 150); //Animate image back to smaller size }); });
Internet Explorer escalado de imagen Fix
Esto ha sido señalado a la atención antes, pero cuando se trata de cambiar el tamaño de imágenes, Internet Explorer no hacer un buen trabajo a menos que agregue las siguientes líneas en tu CSS:
Esto ha sido señalado a la atención antes, pero cuando se trata de cambiar el tamaño de imágenes, Internet Explorer no hacer un buen trabajo a menos que agregue las siguientes líneas en tu CSS:
img { -ms-interpolation-mode: bicubic; }Después de ocuparse de ese arreglo, su menú está listo para rodar, muy bien hecho.
No hay comentarios:
Publicar un comentario