|
mapbMenu es un menú configurable que permite
múltiples niveles, varios menús por página
y colocarlo en posición vertical o horizontal. Se puede utilizar
tanto con Explorer como con Netscape, a partir de la versión
4 de los dos navegadores.
Para crear un menú hay que poner el siguiente
código en la página:
En la cabecera (entre
las marcas HEAD):
<script language="JavaScript1.2" src="mapb_menu.js"></script>
<link rel=stylesheet type="text/css" href="mapb_menu_style.css">
En el cuerpo del documento (entre
las marcas BODY) la referencia al archivo que define el menú:
<script language="JavaScript1.2" src="mapb_menu_def.js"></script>
Archivo que contiene este código:
alordaMenu = new Menu ('alordaMenu',0,0);
//Menu definition
alordaMenu.addItem ('Indice','',false);
alordaMenu.addItem ('Homepage','x',false);
alordaMenu.addItem ('Scripts','',false);
alordaMenu.addItem ('Menú','menu.html',true);
alordaMenu.addItem ('-','-',false);
alordaMenu.addItem ('Ejemplos','',true);
alordaMenu.addItem ('Alorda','alorda/index.html',true);
alordaMenu.addItem ('Contacto','',true);
alordaMenu.addItem ('e-Mail','mailto:mapintanel@wanadoo.es',true);
alordaMenu.doMenu();
//control
if (document.layers){
document.onMouseDown = hideMenus;
} else {
document.body.onclick = hideMenus;
}
 |
| Fig. 1 Definición del menú |
Para adaptar el menú a vuestro contenido fijémonos
en el ejemplo anterior. Hemos añadido tabulaciones para hacer
más mantenible el menu, no afecta a su funcionamento. Antes
que nada tenemos que definir el menu, esto se hace, como en la primera
linea del código anterior, con nombredelmenu = new
Menu ('nombredelmenu', left, top). Es importante recordar
que javaScript es sensible a la diferencia entre mayusculas y minúsculas,
así que el nombre del menú tiene que ser igual cada
vez que lo escribimos, tanta en la creación del menú
como más adelante. Las propiedades left y top
indican la situación del menú. Cada vez que escribimos
nombredelmenu.addItem (Text,URL,isLast) estamos añadiendo
una entrada nueva en el menú. Cuando la propiedad URL
está vacia estamos definiendo que la siguiente linea es un
nuevo submenu. Cuando isLast es igual a true
la entrada es la última de un submenú (ver Fig. 1).
Otras normas útiles: Cuando URL
es igual a 'x', o cuando URL es igual
a la dirección de la página actual, la entrada estará
desactivada. Cuando Text y URL son iguales
a '-' la entrada es un separador. Cuando URL
es igual a 'v' la entrada es la opción activa
(ver menú de idiomas más arriba para un ejemplo).
La función doMenu () crea el
menú y lo muestra en pantalla. Las últimas líneas
de código son un control para que el menú se cierre
al hacer click en cualquier otro elemento del documento.
Para modificar el aspecto y el comportamiento del
menú tenemos que modificar las siguientes líneas del
documento mapb_menu.js, y las definiciones de estilo
del documento mapb_menu_style.css:
//comportamiento
var autoHide_activate = true; // Si es true el menu se oculta después de
var autoHide_seconds = 6; // los segundos definidos en autoHide_seconds, desde el
// 0.8.7 update puede ser 0.01 o mayor
//prefs
this.m_vertical = true; // Si true el menú es vertical
this.sm_width = 112; // Ancho entradas submenús
this.sm_height = 25; // Altura entradas submenús
this.h_offset = -3; // Offset horizontal
this.v_offset = 3; // Offset vertical
this.sm_border = 2; // Borde de submenú. Par ó 0
this.l_m_color = '#FF9933'; // Si sm_border > 0 color
// fondo menú inicial
this.l_sm_color = '#CCFFFF'; // Si sm_border > 0
// Color fondo submenús
this.m_color = '#FF9933'; // Color menú inicial
this.sm_color = '#FFCC99'; // Color entradas submenús
this.sm_a_color = '#FFFF99'; // Color entrada activa
this.m_a_color = '#3333AA'; // Initial Menu when mouseOver
this.m_txt_color = '#FFFFCC'; // Initial text color
this.m_txt_a_color = '#FFFFCC'; // Initial mouseOver text color
this.m_txt_weight = 900; // Initial text weight
this.m_txt_link_weight = 900; // Mouseover link weight
this.m_txt_decoration = 'none'; // Initial text decoration
this.m_txt_link_decoration = 'none'; // Mouseover link decoration
this.txt_color = 'black'; // Color del submenu
this.txt_a_color = 'white'; // Color of mouseover
this.txt_i_color = 'gray'; // Color of inactive items
this.txt_weight = 900; // Grosor texto
this.txt_link_weight = 900; // Mouseover link grosor
this.txt_decoration = 'none'; // Decoration del texto
this.txt_link_decoration = 'none'; // Mouseover link decoraci—n
this.link_cursor = 'pointer'; // Mouseover cursor
New in 0.8.7 Update
this.m_bottom_decor = [0,'solid','#000000']; //decoración inferior items menú
this.sm_bottom_decor = [2,'inset','#FFFFFF']; //decoración inferior items submenú
//
this.m_dec = '|' // Decoración derecha del menu
this.sm_sep = 'url(images/sep.gif)'; // Imagen que hace de separador
this.sm_arrow = 'url(images/f_dreta.gif)'; // Arrow image
this.sm_a_arrow = 'url(images/f_dreta.gif)'; // Arrow image highlighted
this.sm_left_arrow = 'url(images/f_dreta.gif)'; // Arrow image
this.sm_a_left_arrow = 'url(images/f_dreta.gif)'; // Arrow image highlighted
this.menu_back_st = 'menuBackSt'; // Variables de estilo
this.submenu_back_st = 'submenuBackSt'; // de mapb_menu_style.css
this.menu_st = 'menuSt'; //
this.submenu_st = 'submenuSt'; //
this.submenu_st_inactive = 'submenuStInactive'; //
this.sm_direction = 'right';
this.vertical_adjust = 0;
this.horizontal_adjust = 0
A partir de la versión 0.8 se pueden poner
imágenes de fondo, aparte de colores, para hacerlo en lugar
de poner, por ejemplo, this.sm_color = '#FFCC99'
pondremos this.sm_color = 'url(images/fons_on.gif)'.
Para hacer más flexible la creación
de los menús en cualquier momento se puede modificar algún
parámetro en la misma definición del menú,
como en el segundo menu del ejemplo siguiente:
//Primer menú
alordaMenu = new Menu ('alordaMenu',0,0);
//Definición primer menú
alordaMenu.addItem ('Index','',false);
alordaMenu.addItem ('Homepage','x',false);
alordaMenu.addItem ('Scripts','',false);
alordaMenu.addItem ('Menu','menu.html',true);
alordaMenu.addItem ('-','-',false);
alordaMenu.addItem ('Exemples','',true);
alordaMenu.addItem ('Alorda','alorda/index.html',true);
alordaMenu.addItem ('Contact','',true);
alordaMenu.addItem ('e-Mail','mailto:mapintanel@wanadoo.es',true);
alordaMenu.doMenu();
//Segundo menú
plantes = new Menu ('plantes',325,0);
//Prefs
plantes.m_vertical = false;
plantes.l_m_color = '#FF9933';
plantes.l_sm_color = '#CCFFFF';
plantes.m_color = '#3333AA';
plantes.sm_color = '#AACCFF';
plantes.sm_a_color = '#FFFF99';
//Definición segundo menú
plantes.addItem ('Plantes','',true);
plantes.addItem ('General','gen.html',false);
plantes.addItem ('Segle IV','segleiv.html',false);
plantes.addItem ('Segle III','segleiii.html',true);
plantes.doMenu();
//control
if (document.layers){
document.onMouseDown = hideMenus;
} else {
document.body.onclick = hideMenus;
}
En el ejemplo anterior podemos ver como en una misma
página podemos poner un menú estandard y un segundo
menú con propiedades diferentes, en este caso en posición
horizontal y colores diferentes. Sólo hace falta añadir
las propiedades del script que queremos que varien, cambiando donde
pone this por el nombre del menú.
mapbMenu Versión
0.8 documentación (1/2)
download (70 kb)
Parte del website mapbDhtml, mantenido por Miquel
Angel Pintanel. Actualizado: 24-12-2001. Url: http://perso.wanadoo.es/mapintanel/mapbdhtml/es/menu.html
e-mail: mapbdhtml@wanadoo.es
|