Problemas con los menús desplegables

Hola hola.

Despues de resolver los problemas para subir la web, tengo ahora otros, con los distintos navagadores:
- En ie se ve bastante bien, con la única excepción de que los deplegables de los menus se abren por debajo de la web.
- En mozilla las distintas partes de la web no están tan bien ajustadas como en ie, además de que me pasa lo mismo con los menús.
- En google chrome lo mismo que en mozilla.

Añadir, que estoy cargando fotos que proceden de la misma carpeta, pero hay unas que sí que se ven y otras que no.

Por qué pasa todo esto??? qué debo hacer para arreglarlo.

Muchas gracias de antemano.
Saludos

P.D: Se me olvidaba, mi web (bueno, la de mi empresa es: www.coopetrer.es)
Hola hola.

He conseguido arreglar lo de las fotos, el problema era que en el ftp el nombre del archivo debe ser exactamente igual al nombre que tiene en la carpeta de objetos. En el ftp, no es lo mismo poner, por ejemplo, JPG que jpg o GIF que gif. Aunque en el html-kit, sí que da igual, en el ftp el nombre debe ser idéntico.

Sabe alguien pq los desplegables de los menús, se ven abajo de la web y no donde deben salir???

Gracias

Saludos
Amigo es así las extensiones son diferentes si están en mayúsculas o en minúsculas, no importa como las subas al Server o el Server que sea si las extensiones están en mayúsculas no las reconocerá si las rutas están en minúsculas.

Aparte en cuanto al menú pasa los códigos algo debiste poner muy mal para que se viera así.

PD no habrás modificado el archivo notocar.txt?
Hola codomodragon.
Supongo que sí que debe haber algo mal, así que como no sé exactamente qué codigo es el que te tengo que poner, te pongo uno de cada:

EL HTML:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<title>Alimentacion</title>
<link rel="stylesheet" href="estilo-alimentacion.css" type="text/css" media="all">
<link rel="stylesheet" href="estilo-menu-desplegable.css" type="text/css" media="all">
<script language="javascript" src="no-tocar.txt" type="text/javascript"></script>
<script language="javascript" src="numero-de-menus.txt" type="text/javascript"></script>
</head>
<body onload="init();">
<div id="global">
<div id="curva-superior"></div>
<div id="cabecera">
<div id="logotipo">
<a href="prueba.html">
[contenido no disponible]
</a>
</div>
<div id="imagen">[contenido no disponible]
</div>
<div id="datos"> Instalaciones: Avenida de Elda, 77
</div>
<div id="direccion"> 03610 Petrer (Alicante)
</div>
</div>
<div id="titulo"><h1><font face="monotype corsiva"><font size="6">COOPERATIVA AGRICOLA DE PETRER, C. V.</font></font></h1>
</div>
<div id="fotos">[contenido no disponible]
[contenido no disponible]
[contenido no disponible]
[contenido no disponible]
[contenido no disponible]
[contenido no disponible]
</div>
<div id="navegacion">
<ul>
  • Historia
  • Comercios
  • Campañas
  • Administración
  • Contacto

    </div>
    <div id="contenido">
    <h1><font face="monotype corsiva"><font size="10"><u>Alimentación</u></font></font></h1>


    </p>
    <font face="garamond">

    En la tienda Coarval de la Cooperativa podrá encontrar numerosos artículos destinados a la alimentación.</p>


    Entre ellos destacamos, como no, nuestros productos, recogidos en la propia Cooperativa procedente de las cosechas de nuestros socios: almendra, aceite de oliva y vino.</p>


    Almendra: Disponemos de un gran surtido de almendras: peladas, sin pelar, molida con piel, molida sin piel, de 1/2 kg, de 1 kg y un amplísimo abanico de frutos secos</p>


    Aceite: El aceite, elaborado en nuestra propia almazara está a la venta en envases de 1/4, 1/2, 2 y 5 litros. Este aceite catalogado como virgen tiene una gran aceptación entre todos los consumidores de la zona.</p>


    Vino: El vino, elaborado en Bocopa o en nuestra bodega es, junto al aceite, el producto estrella de nuestra tienda. Disponemos de un surtido de vino a granel compuesto de: Tinto joven, Vino blanco, Vino rosado, Valle del Cid, Vino añejo, Mistela y Vermouth.</p>


    Además de estos "productos de la casa" disponemos de una amplísima gama de productos alimenticios como conservas, pasta, productos frescos como huevos, embutido envasado al vacío, jamones y lácteos, congelados, bebidas de todo tipo, desde vinos embotellados de una gran variedad de bodegas hasta grandes marcas en licores, una abundante oferta en mieles y productos apícolas, todo tipo de aperitivos y un largo etcetera. En resumen, la tienda ofrece una gran cantidad de productos que no se limita solamente a la venta de nuestros productos.</div></font>
    <div id="pie">
    <div id="pieuno">
    <ul>
  • <font size="7"><font face="garamond">¡¡¡ ACTUALIDAD AL DÍA !!!</font></font>

    </div>
    </div>
    <div id="curva-inferior"></div>
    </div>
    <script language="javascript" src="definir-menus.txt" type="text/javascript"></script>
    </body>
    </html>


    CSS:


    * {margin:0px ; padding:0px ; border: 0px}
    p {text-align: justify}
    h1 {font-size: 1.2em; color:black ; font-weight: bold ; text-decoration: none ; text-align: center}
    h2 {font.size: 1.1em; color:black ; font-weight: bold ; text-decoration: none ; text-align: center}
    body {text-align: center}
    #global {width:800px ; margin: 4px auto }
    #curva-superior { background-image: url(objetos/curva-superior.gif) ;
    background-repeat: no-repeat ;
    width:800px ;
    height: 12px;
    overflow : hidden }
    #cabecera {background-color: #698B22 ; border-top: black 1px solid ; border-left: black 1px solid ; border-right: black 1px solid ; height:85px }
    #logotipo {background-color: #698B22 ; width:280px ; float:left }
    #imagen {background-color: #698B22 ; width:518px ; float:right ; margin-top:0px }
    #datos {background-color: #698B22 ; border-right: black 1px solid }
    #direccion {background-color: #698B22 ; border-right: black 1px solid ; border-bottom: black 1px solid }
    #titulo {background-color: #CAFF70 ; border-top: black 3px solid ; border-right: black 1px solid ; border-bottom: black 3px solid ; border-left: black 1px solid }
    #fotos {background-color: #698B22 ; border: black 1px solid }
    #navegacion {background-color: #CAFF70 ; border-top: black 1px solid ; border-right: black 1px solid ; border-left: black 1px solid ; height:20px }
    #navegacion li {float:left ; list-style:none ; margin: 0px 18px 0px 18px }
    #navegacion ul { margin-left: 180px }
    #contenido {background-color: #698B22 ; border-left: black 1px solid ; border-right: black 1px solid }
    #contenido p {padding: 5px 10px 5px 10px ; text-indent: 15px}
    #pie { background-color: #CAFF70 ;
    border-left: black 1px solid ;
    border-right: black 1px solid;
    border-top: black 1px solid ;
    border-bottom: black 1px solid ;
    height: 65px }
    #pie li {list-style: none ; font-size: 12px }
    #pieuno {float:center ; width:798px ; background-color: CAFF70 ; margin-top:20px }
    #curva-inferior { background-image: url(objetos/curva-inferior.gif) ;
    background-repeat: no-repeat ;
    width:800px ;
    height: 12px
    overflow: hidden }
    a {color: #000000 ; text-decoration:none ; display: block }
    a.enlaceuno:link{}
    a.enlaceuno:visited{}
    a.enlaceuno:hover{}
    a.enlaceuno:active{}
    #pie a {color: black ; text-decoration:none ; display: block }
    #pie a:link {}
    #pie a:visited {}
    #pie a:hover {color:#556B2F ; text-decoration:underline ; background-color: #CAFF70 }
    #pie a:active {}
    #logotipo a {}
    #logotipo a:link {}
    #logotipo a:visited {}
    #logotipo a:hover {}
    #logotipo a:active {}
    #navegacion a {}
    #navegacion a:link {}
    #navegacion a:visited {}
    #navegacion a:hover { background-color: #698B22}
    #navegacion a:active {}


    DEFINIR-MENUS.TXT:


    if (TransMenu.isSupported())
    {
    var ms=new TransMenuSet
    (TransMenu.direction.down,1,0, TransMenu.reference.bottomLeft);
    var desplegable1 = ms.addMenu(document.getElementById('desplegable1'));
    desplegable1.addItem('Un paseo de más de 100 años','historia.html');
    desplegable1.addItem('Centenario','centenario.html');

    var desplegable2 = ms.addMenu(document.getElementById('desplegable2'));
    desplegable2.addItem('Tienda','tienda.html');
    var desplegable2_0 = desplegable2.addMenu(desplegable2.items[0]);
    desplegable2_0.addItem('Alimentación','alimentacion.html');
    desplegable2_0.addItem('Varios','varios.html');
    desplegable2.addItem('Almacen de abonos','almacen-abonos.html');

    var desplegable3 = ms.addMenu(document.getElementById('desplegable3'));
    desplegable3.addItem('Uva','uva.html');
    desplegable3.addItem('Almendra','almendra.html');
    desplegable3.addItem('Oliva','oliva.html');

    var desplegable4 = ms.addMenu(document.getElementById('desplegable4'));
    desplegable4.addItem('Cursos','cursos.html');
    desplegable4.addItem('Pago Único','pago-unico.html');
    desplegable4.addItem('Noticias','noticias.html');
    desplegable4.addItem('Avisos','avisos.html');

    var desplegable5 = ms.addMenu(document.getElementById('desplegable5'));
    desplegable5.addItem('Contacto','contacto.html');


    TransMenu.renderAll();
    }


    NO-TOCAR.TXT:


    /* =================================================================================================
    * TransMenu
    * March, 2003
    *
    * Customizable multi-level animated DHTML menus with transparency.
    *
    * Copyright 2003-2004, Aaron Boodman (www.youngpup.net)
    * =================================================================================================
    * "Can I use this?"
    *
    * Use of this library is governed by the Creative Commons Attribution 2.0 License. You can check it
    * out at: http://creativecommons.org/licenses/by/2.0/
    *
    * Basically: You may copy, distribute, and eat this code as you wish. But you must give me credit
    * for writing it. You may not misrepresent yourself as the author of this code.
    * =================================================================================================
    * "It's kinda hard to read, though"
    *
    * The uncompressed, commented version of this script can be found at:
    * http://youngpup.net/projects/transMenus
    * =================================================================================================
    * updates:
    * 04.19.04 fixed cascade problem with menus nested greater than two levels.
    * 12.23.03 added hideCurrent for menu actuators with no menus. renamed to TransMenu.
    * 04.18.03 fixed render bug in IE 5.0 Mac by removing that browser from compatibility table ;)
    * also made gecko check a little more strict by specifying build no.
    * ============================================================================================== */



    //==================================================================================================
    // Configuration properties
    //==================================================================================================
    TransMenu.spacerGif = "objetos/espaciador.gif"; // path to a transparent spacer gif
    TransMenu.dingbatOn = "objetos/submenu-abierto.gif"; // path to the active sub menu dingbat
    TransMenu.dingbatOff = "objetos/submenu-cerrado.gif"; // path to the inactive sub menu dingbat
    TransMenu.dingbatSize = 14; // size of the dingbat (square shape assumed)
    TransMenu.menuPadding = 0; // padding between menu border and items grid
    TransMenu.itemPadding = 2; // additional padding around each item
    TransMenu.shadowSize = 2; // size of shadow under menu
    TransMenu.shadowOffset = 3; // distance shadow should be offset from leading edge
    TransMenu.shadowColor = "#888"; // color of shadow (transparency is set in CSS)
    TransMenu.shadowPng = "objetos/gris.png"; // a PNG graphic to serve as the shadow for mac IE5
    TransMenu.backgroundColor = "#C4CCCC"; // color of the background (transparency set in CSS)
    TransMenu.backgroundPng = "objetos/blanco.png"; // a PNG graphic to server as the background for mac IE5
    TransMenu.hideDelay = 1000; // number of milliseconds to wait before hiding a menu
    TransMenu.slideTime = 400; // number of milliseconds it takes to open and close a menu
    TransMenu.preImg = "objetos/punto.gif";

    //==================================================================================================
    // Internal use properties
    //==================================================================================================
    TransMenu.reference = {topLeft:1,topRight:2,bottomLeft:3,bottomRight:4};
    TransMenu.direction = {down:1,right:2};
    TransMenu.registry = [];
    TransMenu._maxZ = 100;



    //==================================================================================================
    // Static methods
    //==================================================================================================
    // supporting win ie5+, mac ie5.1+ and gecko >= mozilla 1.0
    TransMenu.isSupported = function() {
    var ua = navigator.userAgent.toLowerCase();
    var pf = navigator.platform.toLowerCase();
    var an = navigator.appName;
    var r = false;

    if (ua.indexOf("gecko") > -1 && navigator.productSub >= 20020605) r = true; // gecko >= moz 1.0
    else if (an == "Microsoft Internet Explorer") {
    if (document.getElementById) { // ie5.1+ mac,win
    if (pf.indexOf("mac") == 0) {
    r = /msie (\d(.\d*)?)/.test(ua) && Number(RegExp.$1) >= 5.1;
    }
    else r = true;
    }
    }

    return r;
    }

    // call this in onload once menus have been created
    TransMenu.initialize = function() {
    for (var i = 0, menu = null; menu = this.registry; i++) {
    menu.initialize();
    }
    }

    // call this in document body to write out menu html
    TransMenu.renderAll = function() {
    var aMenuHtml = [];
    for (var i = 0, menu = null; menu = this.registry; i++) {
    aMenuHtml = menu.toString();
    }
    document.write(aMenuHtml.join(""));
    }

    //==================================================================================================
    // TransMenu constructor (only called internally)
    //==================================================================================================
    // oActuator : The thing that causes the menu to be shown when it is mousedover. Either a
    // reference to an HTML element, or a TransMenuItem from an existing menu.
    // iDirection : The direction to slide out. One of TransMenu.direction.
    // iLeft : Left pixel offset of menu from actuator
    // iTop : Top pixel offset of menu from actuator
    // iReferencePoint : Corner of actuator to measure from. One of TransMenu.referencePoint.
    // parentMenuSet : Menuset this menu will be added to.
    //==================================================================================================
    function TransMenu(oActuator, iDirection, iLeft, iTop, iReferencePoint, parentMenuSet) {
    // public methods
    this.addItem = addItem;
    this.addMenu = addMenu;
    this.toString = toString;
    this.initialize = initialize;
    this.isOpen = false;
    this.show = show;
    this.hide = hide;
    this.items = [];

    // events
    this.onactivate = new Function(); // when the menu starts to slide open
    this.ondeactivate = new Function(); // when the menu finishes sliding closed
    this.onmouseover = new Function(); // when the menu has been moused over
    this.onqueue = new Function(); // hack .. when the menu sets a timer to be closed a little while in the future
    this.ondequeue = new Function();

    // initialization
    this.index = TransMenu.registry.length;
    TransMenu.registry[this.index] = this;

    var id = "TransMenu" + this.index;
    var contentHeight = null;
    var contentWidth = null;
    var childMenuSet = null;
    var animating = false;
    var childMenus = [];
    var slideAccel = -1;
    var elmCache = null;
    var ready = false;
    var _this = this;
    var a = null;

    var pos = iDirection == TransMenu.direction.down ? "top" : "left";
    var dim = null;

    // private and public method implimentations
    function addItem(sText, sUrl) {
    var item = new TransMenuItem(sText, sUrl, this);
    item._index = this.items.length;
    this.items[item._index] = item;
    }

    function addMenu(oMenuItem) {
    if (!oMenuItem.parentMenu == this) throw new Error("Cannot add a menu here");

    if (childMenuSet == null) childMenuSet = new TransMenuSet(TransMenu.direction.right, -5, 2, TransMenu.reference.topRight);

    var m = childMenuSet.addMenu(oMenuItem);

    childMenus[oMenuItem._index] = m;
    m.onmouseover = child_mouseover;
    m.ondeactivate = child_deactivate;
    m.onqueue = child_queue;
    m.ondequeue = child_dequeue;

    return m;
    }

    function initialize() {
    initCache();
    initEvents();
    initSize();
    ready = true;
    }

    function show() {
    //dbg_dump("show");
    if (ready) {
    _this.isOpen = true;
    animating = true;
    setContainerPos();
    elmCache["clip"].style.visibility = "visible";
    elmCache["clip"].style.zIndex = TransMenu._maxZ++;
    //dbg_dump("maxZ: " + TransMenu._maxZ);
    slideStart();
    _this.onactivate();
    }
    }

    function hide() {
    if (ready) {
    _this.isOpen = false;
    animating = true;

    for (var i = 0, item = null; item = elmCache.item; i++)
    dehighlight(item);

    if (childMenuSet) childMenuSet.hide();

    slideStart();
    _this.ondeactivate();
    }
    }

    function setContainerPos() {
    var sub = oActuator.constructor == TransMenuItem;
    var act = sub ? oActuator.parentMenu.elmCache["item"][oActuator._index] : oActuator;
    var el = act;

    var x = 0;
    var y = 0;


    var minX = 0;
    var maxX = (window.innerWidth ? window.innerWidth : document.body.clientWidth) - parseInt(elmCache["clip"].style.width);
    var minY = 0;
    var maxY = (window.innerHeight ? window.innerHeight : document.body.clientHeight) - parseInt(elmCache["clip"].style.height);

    // add up all offsets... subtract any scroll offset
    while (sub ? el.parentNode.className.indexOf("transMenu") == -1 : el.offsetParent) {
    x += el.offsetLeft;
    y += el.offsetTop;

    if (el.scrollLeft) x -= el.scrollLeft;
    if (el.scrollTop) y -= el.scrollTop;

    el = el.offsetParent;
    }

    if (oActuator.constructor == TransMenuItem) {
    x += parseInt(el.parentNode.style.left);
    y += parseInt(el.parentNode.style.top);
    }

    switch (iReferencePoint) {
    case TransMenu.reference.topLeft:
    break;
    case TransMenu.reference.topRight:
    x += act.offsetWidth;
    break;
    case TransMenu.reference.bottomLeft:
    y += act.offsetHeight;
    break;
    case TransMenu.reference.bottomRight:
    x += act.offsetWidth;
    y += act.offsetHeight;
    break;
    }

    x += iLeft;
    y += iTop;

    x = Math.max(Math.min(x, maxX), minX);
    y = Math.max(Math.min(y, maxY), minY);

    elmCache["clip"].style.left = x + "px";
    elmCache["clip"].style.top = y + "px";
    }

    function slideStart() {
    var x0 = parseInt(elmCache["content"].style);
    var x1 = _this.isOpen ? 0 : -dim;

    if (a != null) a.stop();
    a = new Accelimation(x0, x1, TransMenu.slideTime, slideAccel);

    a.onframe = slideFrame;
    a.onend = slideEnd;

    a.start();
    }

    function slideFrame(x) {
    elmCache["content"].style = x + "px";
    }

    function slideEnd() {
    if (!_this.isOpen) elmCache["clip"].style.visibility = "hidden";
    animating = false;
    }

    function initSize() {
    // everything is based off the size of the items table...
    var ow = elmCache["items"].offsetWidth;
    var oh = elmCache["items"].offsetHeight;
    var ua = navigator.userAgent.toLowerCase();

    // clipping container should be ow/oh + the size of the shadow
    elmCache["clip"].style.width = ow + TransMenu.shadowSize + 2 + "px";
    elmCache["clip"].style.height = oh + TransMenu.shadowSize + 2 + "px";

    // same with content...
    elmCache["content"].style.width = ow + TransMenu.shadowSize + "px";
    elmCache["content"].style.height = oh + TransMenu.shadowSize + "px";

    contentHeight = oh + TransMenu.shadowSize;
    contentWidth = ow + TransMenu.shadowSize;

    dim = iDirection == TransMenu.direction.down ? contentHeight : contentWidth;

    // set initially closed
    elmCache["content"].style = -dim - TransMenu.shadowSize + "px";
    elmCache["clip"].style.visibility = "hidden";

    // if *not* mac/ie 5
    if (ua.indexOf("mac") == -1 || ua.indexOf("gecko") > -1) {
    // set background div to offset size
    elmCache["background"].style.width = ow + "px";
    elmCache["background"].style.height = oh + "px";
    elmCache["background"].style.backgroundColor = TransMenu.backgroundColor;

    // shadow left starts at offset left and is offsetHeight pixels high
    elmCache["shadowRight"].style.left = ow + "px";
    elmCache["shadowRight"].style.height = oh - (TransMenu.shadowOffset - TransMenu.shadowSize) + "px";
    elmCache["shadowRight"].style.backgroundColor = TransMenu.shadowColor;

    // shadow bottom starts at offset height and is offsetWidth - shadowOffset
    // pixels wide (we don't want the bottom and right shadows to overlap or we
    // get an extra bright bottom-right corner)
    elmCache["shadowBottom"].style.top = oh + "px";
    elmCache["shadowBottom"].style.width = ow - TransMenu.shadowOffset + "px";
    elmCache["shadowBottom"].style.backgroundColor = TransMenu.shadowColor;
    }
    // mac ie is a little different because we use a PNG for the transparency
    else {
    // set background div to offset size
    elmCache["background"].firstChild.src = TransMenu.backgroundPng;
    elmCache["background"].firstChild.width = ow;
    elmCache["background"].firstChild.height = oh;

    // shadow left starts at offset left and is offsetHeight pixels high
    elmCache["shadowRight"].firstChild.src = TransMenu.shadowPng;
    elmCache["shadowRight"].style.left = ow + "px";
    elmCache["shadowRight"].firstChild.width = TransMenu.shadowSize;
    elmCache["shadowRight"].firstChild.height = oh - (TransMenu.shadowOffset - TransMenu.shadowSize);

    // shadow bottom starts at offset height and is offsetWidth - shadowOffset
    // pixels wide (we don't want the bottom and right shadows to overlap or we
    // get an extra bright bottom-right corner)
    elmCache["shadowBottom"].firstChild.src = TransMenu.shadowPng;
    elmCache["shadowBottom"].style.top = oh + "px";
    elmCache["shadowBottom"].firstChild.height = TransMenu.shadowSize;
    elmCache["shadowBottom"].firstChild.width = ow - TransMenu.shadowOffset;
    }
    }

    function initCache() {
    var menu = document.getElementById(id);
    var all = menu.all ? menu.all : menu.getElementsByTagName("*"); // IE/win doesn't support * syntax, but does have the document.all thing

    elmCache = {};
    elmCache["clip"] = menu;
    elmCache["item"] = [];

    for (var i = 0, elm = null; elm = all; i++) {
    switch (elm.className) {
    case "items":
    case "content":
    case "background":
    case "shadowRight":
    case "shadowBottom":
    elmCache[elm.className] = elm;
    break;
    case "item":
    elm._index = elmCache["item"].length;
    elmCache["item"][elm._index] = elm;
    break;
    }
    }

    // hack!
    _this.elmCache = elmCache;
    }

    function initEvents() {
    // hook item mouseover
    for (var i = 0, item = null; item = elmCache.item; i++) {
    item.onmouseover = item_mouseover;
    item.onmouseout = item_mouseout;
    item.onclick = item_click;
    }

    // hook actuation
    if (typeof oActuator.tagName != "undefined") {
    oActuator.onmouseover = actuator_mouseover;
    oActuator.onmouseout = actuator_mouseout;
    }

    // hook menu mouseover
    elmCache["content"].onmouseover = content_mouseover;
    elmCache["content"].onmouseout = content_mouseout;
    }

    function highlight(oRow) {
    oRow.className = "item hover";
    if (childMenus[oRow._index])
    oRow.lastChild.firstChild.src = TransMenu.dingbatOn;
    }

    function dehighlight(oRow) {
    oRow.className = "item";
    if (childMenus[oRow._index])
    oRow.lastChild.firstChild.src = TransMenu.dingbatOff;
    }

    function item_mouseover() {
    if (!animating) {
    highlight(this);

    if (childMenus[this._index])
    childMenuSet.showMenu(childMenus[this._index]);
    else if (childMenuSet) childMenuSet.hide();
    }
    }

    function item_mouseout() {
    if (!animating) {
    if (childMenus[this._index])
    childMenuSet.hideMenu(childMenus[this._index]);
    else // otherwise child_deactivate will do this
    dehighlight(this);
    }
    }

    function item_click() {
    if (!animating) {
    if (_this.items[this._index].url)
    location.href = _this.items[this._index].url;
    }
    }

    function actuator_mouseover() {
    parentMenuSet.showMenu(_this);
    }

    function actuator_mouseout() {
    parentMenuSet.hideMenu(_this);
    }

    function content_mouseover() {
    if (!animating) {
    parentMenuSet.showMenu(_this);
    _this.onmouseover();
    }
    }

    function content_mouseout() {
    if (!animating) {
    parentMenuSet.hideMenu(_this);
    }
    }

    function child_mouseover() {
    if (!animating) {
    parentMenuSet.showMenu(_this);
    }
    }

    function child_deactivate() {
    for (var i = 0; i < childMenus.length; i++) {
    if (childMenus == this) {
    dehighlight(elmCache["item"]);
    break;
    }
    }
    }

    function child_queue() {
    parentMenuSet.hideMenu(_this);
    }

    function child_dequeue() {
    parentMenuSet.showMenu(_this);
    }

    function toString() {
    var aHtml = [];
    var sClassName = "transMenu" + (oActuator.constructor != TransMenuItem ? " top" : "");

    for (var i = 0, item = null; item = this.items; i++) {
    aHtml = item.toString(childMenus);
    }

    return '<div id="' + id + '" class="' + sClassName + '">' +
    '<div class="content"><table class="items" cellpadding="0" cellspacing="0" border="0">' +
    '<tr><td colspan="2">[contenido no disponible]</td></tr>' +
    aHtml.join('') +
    '<tr><td colspan="2">[contenido no disponible]</td></tr></table>' +
    '<div class="shadowBottom">[contenido no disponible]</div>' +
    '<div class="shadowRight">[contenido no disponible]</div>' +
    '<div class="background">[contenido no disponible]</div>' +
    '</div></div>';
    }
    }


    //==================================================================================================
    // TransMenuSet
    //==================================================================================================
    // iDirection : The direction to slide out. One of TransMenu.direction.
    // iLeft : Left pixel offset of menus from actuator
    // iTop : Top pixel offset of menus from actuator
    // iReferencePoint : Corner of actuator to measure from. One of TransMenu.referencePoint.
    //==================================================================================================
    TransMenuSet.registry = [];

    function TransMenuSet(iDirection, iLeft, iTop, iReferencePoint) {
    // public methods
    this.addMenu = addMenu;
    this.showMenu = showMenu;
    this.hideMenu = hideMenu;
    this.hide = hide;
    this.hideCurrent = hideCurrent;

    // initialization
    var menus = [];
    var _this = this;
    var current = null;

    this.index = TransMenuSet.registry.length;
    TransMenuSet.registry[this.index] = this;

    // method implimentations...
    function addMenu(oActuator) {
    var m = new TransMenu(oActuator, iDirection, iLeft, iTop, iReferencePoint, this);
    menus[menus.length] = m;
    return m;
    }

    function showMenu(oMenu) {
    if (oMenu != current) {
    // close currently open menu
    if (current != null) hide(current);

    // set current menu to this one
    current = oMenu;

    // if this menu is closed, open it
    oMenu.show();
    }
    else {
    // hide pending calls to close this menu
    cancelHide(oMenu);
    }
    }

    function hideMenu(oMenu) {
    //dbg_dump("hideMenu a " + oMenu.index);
    if (current == oMenu && oMenu.isOpen) {
    //dbg_dump("hideMenu b " + oMenu.index);
    if (!oMenu.hideTimer) scheduleHide(oMenu);
    }
    }

    function scheduleHide(oMenu) {
    //dbg_dump("scheduleHide " + oMenu.index);
    oMenu.onqueue();
    oMenu.hideTimer = window.setTimeout("TransMenuSet.registry[" + _this.index + "].hide(TransMenu.registry[" + oMenu.index + "])", TransMenu.hideDelay);
    }

    function cancelHide(oMenu) {
    //dbg_dump("cancelHide " + oMenu.index);
    if (oMenu.hideTimer) {
    oMenu.ondequeue();
    window.clearTimeout(oMenu.hideTimer);
    oMenu.hideTimer = null;
    }
    }

    function hide(oMenu) {
    if (!oMenu && current) oMenu = current;

    if (oMenu && current == oMenu && oMenu.isOpen) {
    hideCurrent();
    }
    }

    function hideCurrent() {
    if (null != current) {
    cancelHide(current);
    current.hideTimer = null;
    current.hide();
    current = null;
    }
    }
    }

    //==================================================================================================
    // TransMenuItem (internal)
    // represents an item in a dropdown
    //==================================================================================================
    // sText : The item display text
    // sUrl : URL to load when the item is clicked
    // oParent : Menu this item is a part of
    //==================================================================================================
    function TransMenuItem(sText, sUrl, oParent) {
    this.toString = toString;
    this.text = sText;
    this.url = sUrl;
    this.parentMenu = oParent;

    function toString(bDingbat) {
    var sDingbat = bDingbat ? TransMenu.dingbatOff : TransMenu.spacerGif;
    var iEdgePadding = TransMenu.itemPadding + TransMenu.menuPadding;
    var sPaddingLeft = "padding:" + TransMenu.itemPadding + "px; padding-left:" + iEdgePadding + "px;"
    var sPaddingRight = "padding:" + TransMenu.itemPadding + "px; padding-right:" + iEdgePadding + "px;"

    return '<tr class="item" ><td width="16" style="' + sPaddingLeft + '" >' + '[contenido no disponible]</td><td nowrap style="' + sPaddingLeft + '" >' +
    sText + '</td><td width="14" style="' + sPaddingRight + '" >' +
    '[contenido no disponible]</td></tr>';
    }
    }






    //=====================================================================
    // Accel imation object
    // change a property of an object over time in an accelerated fashion
    //=====================================================================
    // obj : reference to the object whose property you'd like to animate
    // prop : property you would like to change eg: "left"
    // to : final value of prop
    // time : time the animation should take to run
    // zip : optional. specify the zippiness of the acceleration. pick a
    // number between -1 and 1 where -1 is full decelerated, 1 is
    // full accelerated, and 0 is linear (no acceleration). default
    // is 0.
    // unit : optional. specify the units for use with prop. default is
    // "px".
    //=====================================================================
    // bezier functions lifted from the lib_animation.js file in the
    // 13th Parallel API. www.13thparallel.org
    //=====================================================================

    function Accelimation(from, to, time, zip) {
    if (typeof zip == "undefined") zip = 0;
    if (typeof unit == "undefined") unit = "px";

    this.x0 = from;
    this.x1 = to;
    this.dt = time;
    this.zip = -zip;
    this.unit = unit;
    this.timer = null;
    this.onend = new Function();
    this.onframe = new Function();
    }



    //=====================================================================
    // public methods
    //=====================================================================

    // after you create an accelimation, you call this to start it-a runnin'
    Accelimation.prototype.start = function() {
    this.t0 = new Date().getTime();
    this.t1 = this.t0 + this.dt;
    var dx = this.x1 - this.x0;
    this.c1 = this.x0 + ((1 + this.zip) * dx / 3);
    this.c2 = this.x0 + ((2 + this.zip) * dx / 3);
    Accelimation._add(this);
    }

    // and if you need to stop it early for some reason...
    Accelimation.prototype.stop = function() {
    Accelimation._remove(this);
    }



    //=====================================================================
    // private methods
    //=====================================================================

    // paints one frame. gets called by Accelimation._paintAll.
    Accelimation.prototype._paint = function(time) {
    if (time < this.t1) {
    var elapsed = time - this.t0;
    this.onframe(Accelimation._getBezier(elapsed/this.dt,this.x0,this.x1,this.c1,this.c2));
    }
    else this._end();
    }

    // ends the animation
    Accelimation.prototype._end = function() {
    Accelimation._remove(this);
    this.onframe(this.x1);
    this.onend();
    }




    //=====================================================================
    // static methods (all private)
    //=====================================================================

    // add a function to the list of ones to call periodically
    Accelimation._add = function(o) {
    var index = this.instances.length;
    this.instances = o;
    // if this is the first one, start the engine
    if (this.instances.length == 1) {
    this.timerID = window.setInterval("Accelimation._paintAll()", this.targetRes);
    }
    }

    // remove a function from the list
    Accelimation._remove = function(o) {
    for (var i = 0; i < this.instances.length; i++) {
    if (o == this.instances) {
    this.instances = this.instances.slice(0,i).concat( this.instances.slice(i+1) );
    break;
    }
    }
    // if that was the last one, stop the engine
    if (this.instances.length == 0) {
    window.clearInterval(this.timerID);
    this.timerID = null;
    }
    }

    // "engine" - call each function in the list every so often
    Accelimation._paintAll = function() {
    var now = new Date().getTime();
    for (var i = 0; i < this.instances.length; i++) {
    this.instances._paint(now);
    }
    }


    // Bezier functions:
    Accelimation._B1 = function(t) { return t*t*t }
    Accelimation._B2 = function(t) { return 3*t*t*(1-t) }
    Accelimation._B3 = function(t) { return 3*t*(1-t)*(1-t) }
    Accelimation._B4 = function(t) { return (1-t)*(1-t)*(1-t) }


    //Finds the coordinates of a point at a certain stage through a bezier curve
    Accelimation._getBezier = function(percent,startPos,endPos,control1,control2) {
    return endPos * this._B1(percent) + control2 * this._B2(percent) + control1 * this._B3(percent) + startPos * this._B4(percent);
    }


    //=====================================================================
    // static properties
    //=====================================================================

    Accelimation.instances = [];
    Accelimation.targetRes = 10;
    Accelimation.timerID = null;


    //=====================================================================
    // IE win memory cleanup
    //=====================================================================

    if (window.attachEvent) {
    var cearElementProps = [
    'data',
    'onmouseover',
    'onmouseout',
    'onmousedown',
    'onmouseup',
    'ondblclick',
    'onclick',
    'onselectstart',
    'oncontextmenu'
    ];

    window.attachEvent("onunload", function() {
    var el;
    for(var d = document.all.length;d--;){
    el = document.all;
    for(var c = cearElementProps.length;c--;){
    el[cearElementProps] = null;
    }
    }
    });
    }


    NUMERO-DE-MENUS.TXT:


    function init()
    {
    if (TransMenu.isSupported())
    {
    TransMenu.initialize();

    desplegable1.onactivate = function() { document.getElementById('desplegable1').className = 'hover'; };
    desplegable1.ondeactivate = function() { document.getElementById('desplegable1').className = ''; }
    desplegable2.onactivate = function() { document.getElementById('desplegable2').className = 'hover'; };
    desplegable2.ondeactivate = function() { document.getElementById('desplegable2').className = ''; }
    desplegable3.onactivate = function() { document.getElementById('desplegable3').className = 'hover'; };
    desplegable3.ondeactivate = function() { document.getElementById('desplegable3').className = ''; }
    desplegable4.onactivate = function() { document.getElementById('desplegable4').className = 'hover'; };
    desplegable4.ondeactivate = function() { document.getElementById('desplegable4').className = ''; }
    desplegable5.onactivate = function() { document.getElementById('desplegable5').className = 'hover'; };
    desplegable5.ondeactivate = function() { document.getElementById('desplegable5').className = ''; }
    }
    }



    Perdón por la extensión del mensaje, pero no sé qué código es el que debo aportar.
    MUCHÍSIMAS GRACIAS POR TU AYUDA.

    P.D. No creo haber modificado el archivo notocar.txt (al ser tan enorme no sabría por donde meterle mano y no se me ocurriría hacerle nada, como bien dice su nombre)

    SALUDOS
  • hola

    yo vi tu web en opera y windows
    y en ninguno de los dos pude ver el desplegable
    pero ... no te asustes, eso se arregla fácilmente

    abre tu documento, no-tocar.txt

    y asi como está le das guardar como:
    transmenuC.txt

    asi tal cual, todo en minusculas y la C en mayusculas ok????

    luego abre tu documento prueba.html
    y en la linea
    <script language="javascript" src="no-tocar.txt" type="text/javascript"></script>

    cambia lo rojo por... transmenuC.txt
    con es lo arreglamos para Opera
    ok????

    ahora,... viendo tu codigo fuente
    dime... que o para que, es esto???

    <div id="cande">
    </div>

    cambiale la medida del font en navegacion
    al poner font size:5 dices que 5 pixeles???
    el texto se desborda y ocasiona problemas
    ve cambiando poco a poco

    yo lo he ajustado asi

    <div id="navegacion">
    <ul>
  • Historia</font>
  • Comercios</font>
  • Campañas</font>
  • Administración</font>
  • Contacto</font>

    </div>


    #navegacion {background-color: #CAFF70 ; border-top: black 1px solid ; border-right: black 1px solid ; border-left: black 1px solid ; height:24px; font-size:23px; padding-left:20px }

    checalo, y nos avisas

    saludos
  • Hola hola a tod@s.

    1.- Yaneth he hecho lo que me has dicho (bueno, escrito. jejejeje):
    - Abrí el documento txt en el html-kit.
    - En ese texto, pinché con el botón derecho, y lo guardé como con el nombre transmenuC.txt
    - Sustituí en cada página el no-tocar.txt por transmenuC.txt

    Resultado: En opera lo sigo viendo igual (es decir, no hay desplegables).
    En ie, mozilla y google chrome no se me abren los deplegables de algunas páginas (de todas no, de algunas).
    Habré hecho algo mal, pq a priori en vez de arreglarlo, lo he estropeado más. Al final he dejado los códigos como los tenía en un principio (se me ven los desplegables debajo de los textos de cada página).

    2.- Lo de
    <div id="cande">
    </div> . Es una capa que cree, pero que ya está borrada, (o eso creía, jejeje). No es nada.

    3.- Con respecto a lo de la medida del font, lo he puesto como me indicas, bueno he reducido el tamaño un poco más, pq si no el menú se me ponía en 2 líneas.

    En resumen, estoy casi ¡gual que antes. En opera no se me ven los desplegables, y en los otros 3 navegadores se me ven por debajo de las páginas.

    MUCHÍSIMAS GRACIAS POR LA COLABORACIÓN Y POR LA AYUDA. YA ME DECÍS.

    SALUDOS

    P.D. Brans, la verdad es que seguí los pasos del curso CCTW, así que todos esos codigazos salieron de ahí, pero no sé de dónde. Estuve mirando, pero ahora no los encuentro, pero estar tienen que estar, pq yo sería incapaz de inventar todo eso. Saludos.
    gracias. de todas maneras creo que ya no estan, aunque si alguien tuviera idea, lo agradeceria un monton. Gracias.
    Hola hola.

    Al final he consguido que en opera sí que se vean los menús (se me olvidó subir el archivo transmenuC.txt :oops:), pero sigo teniendo el problema de uqe los desplegables se me ven por debajo de la web, en vez de verse por debajo del menú horizontal.

    Hice lo que me puso Yaneth, en estilos.css lo dejé así:

    #navegacion {background-color: #CAFF70 ; border-top: black 1px solid ; border-right: black 1px solid ; border-left: black 1px solid ; height:19px; font-size:18px; padding-left:15px }.
    Para que me cupiese bien el menú horizontal.

    He avanzado un pasito, pero sigo sin conseguir arreglar lo de los desplegables.

    Gracias por vuestra ayuda y colaboración.
    Saludos
    Charli
    :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock:
    Pero mira que soy burro.


    INFINITAS GRACIAS y ruego tengais paciencia con gente tan torpe como yo. :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:

    Mil disculpas y perdón por las molestias ( eso me pasa por querer ir tan deprisa). La verdad es que se me escapó


    MIL GRACIAS DE NUEVO Y MIL PERDONES

    UN ABRAZO
    nada de disculpas asi aprendemos
    jejejej

    igual a mi me pasó tambien, y al igual que tu me senti muy mal

    pero nada, sigue adelante, que ya sabes
    si necesitas algo nos avisas

    hasta la proxima :wink: