mapbdhtml
 mapbMenu Version 0.9 documentació (1/2)
 

mapbMenu es un menú configurable que permet múltiples nivells, varis menús per pàgina i colocar-lo en posició vertical o horitzontal. Es pot utilitzar tant en Explorer com en Netscape, a partir de la versió 4 dels dos navegadors.

Per crear un menú heu de col.locar el següent codi a la vostra pàgina:

Dins de la capçalera (entre les marques HEAD):

<script language="JavaScript1.2" src="mapb_menu.js"></script>
<link rel=stylesheet type="text/css" href="mapb_menu_style.css">

Dins el cos del document (entre les marques BODY) la referència a l'arxiu que defineix el menú:

<script language="JavaScript1.2" src="mapb_menu_def.js"></script>

Arxiu que conté aquest codi:

alordaMenu = new Menu ('alordaMenu',0,0);

//Menu definition
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();

//control
if (document.layers){
    document.onMouseDown = hideMenus;
} else {
    document.body.onclick = hideMenus;
}
Fig. 1 Definició del menú

Per adaptar el menú als vostres continguts ens hem de fixar en l'exemple anterior. Hem afegit tabulacions per fer més mantenible el menu, no afecten al seu funcionament. Primer de tot hem de definir el menu, això es fa, com a la primera línia del codi anterior, amb nomdelmenu = new Menu ('nomdelmenu', left, top). Es important recordar que javaScript diferencia entre majúscules i minúscules, així el nom del menú ha de ser igual cada vegada que l'escrivim, tant en aquesta creació del menú com més endavant. Les propietats left i top indiquen la situació del menú. Cada vegada que escrivim nomdelmenu.addItem (Text,URL,isLast) estem afegint una entrada nova en el menú. Quan la propietat URL és buida estem definint que la següent línia és un nou submenú. Quan isLast és igual a true vol dir que l'entrada és l'última d'un submenú (Vegeu Fig. 1) .

Altres normes útils: Quan URL és igual a 'x', o quan URL és igual a l'adreça de la pàgina actual, l'entrada estarà desactivada. Quan Text i URL són iguals a '-' l'entrada és un separador.

La funció doMenu () crea el menú i el mostra en pantalla. Les últimes línies de codi són un control perquè el menú es tanqui en fer click a qualsevol altre element del document.

Per modificar l'aspecte i comportament del menú heu modificar les següents línies del document mapb_menu.js, i les definicions d'estil del document mapb_menu_style.css:


//comportament
var autoHide_activate = true; // Si és true el menu s'oculta després del
var autoHide_seconds = 6;     // nombre de segons definit a autoHide_seconds, des del
                              // 0.8.7 update pot ser 0.01 o mŽs gran
//prefs
this.m_vertical = true;                          // Si true menú vertical
this.sm_width = 112;                             // Amplada entrades submenús
this.sm_height = 25;                             // Alçada entrades submenús
this.h_offset = -3;                              // Offset horitzontal
this.v_offset = 3;                               // Offset vertical 
this.sm_border = 2;                              // Vora dels submenús. Parell ó 0
this.l_m_color = '#FF9933';                      // Color fons menú inicial
                                                 //     quan sm_border > 0
this.l_sm_color = '#CCFFFF';                     // Color fons submenús
                                                 //     quan sm_border > 0
this.m_color = '#FF9933';                        // Color menú inicial
this.sm_color = '#FFCC99';                       // Color entrades 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';                   // Decoració del text
this.txt_link_decoration = 'none';              // Mouseover link decoració
New in 0.8.7 Update
this.m_bottom_decor = [0,'solid','#000000']; //decoració inferior items menú
this.sm_bottom_decor = [2,'inset','#FFFFFF']; //decoració inferior items submenú
//
this.link_cursor = 'pointer';              // Mouseover cursor
this.m_dec = '|'                                 // Decoració dreta del menu
this.sm_sep = 'url(images/sep.gif)';                  // Imatge que fa 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 d'estil
this.submenu_back_st = 'submenuBackSt';          // a 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ó 0.8 es poden posar imatges de fons, a més a més de colors, per a fer-ho enlloc de posar, per exemple, this.sm_color = '#FFCC99' posarem this.sm_color = 'url(images/fons_on.gif)'.

Per fer més flexible la creació dels menus en qualsevol moment es pot modificar algun paràmetre en la mateixa definició del menu, com en l'exemple següent:

//Primer menú
alordaMenu = new Menu ('alordaMenu',0,0);

//Definició 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();

//Segon 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ó segon 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;
}

A l'exemple anterior podem veure com en una mateixa pàgina podem posar un menú estàndard i un segon menú amb propietats diferents, en aquest cas en posició horitzontal i amb colors diferents. Com es pot veure només cal afegir les propietats de l'script que volem que varïin, canviant on posa this per el nom del menú.

Podeu descarregar els arxius necessaris pitjant aquí (70 kb)

mapbMenu Versión 0.8 documentación (1/2)

 

Parte del website mapbDhtml, mantenido por Miquel Angel Pintanel. Actualizado:  2-09-2003 . Url: http://perso.wanadoo.es/mapintanel/mapbdhtml/ca/menu.html e-mail: mapbdhtml@wanadoo.es