Foros del Web » Programando para Internet » Javascript »

Novato

Estas en el tema de Novato en el foro de Javascript en Foros del Web. Hola buenas, He modificado un código que he encontrado en www.programacion.net para hacer unos menús desplegables en distintos marcos, pero no me funciona como debería. ...
  #1 (permalink)  
Antiguo 26/10/2005, 04:17
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 18 años, 10 meses
Puntos: 0
Novato

Hola buenas,

He modificado un código que he encontrado en www.programacion.net para hacer unos menús desplegables en distintos marcos, pero no me funciona como debería. El ejemplo está hecho para un menú fijo en un marco superior y los desplegables en el inferior. Yo lo he adaptado para tener en un marco a la izquierda el menú fijo, y en el central el desplegable. El tema es que en cuanto posiciono el ratón sobre el enlace que me activa y visualiza el menú desplegable, la pantalla se estira y me dibuja los menús al principio de la página. Esto es porque el código de visualizar lo he puesto justo despues de <body>, porque si lo pongo justo antes de </body> me los dibuja al final de la página. Pero debería dibujarse encima de la página como en el ejemplo de donde lo saqué... alguien sabe a qué puede ser debido esto?

El enlace del artículo donde está el código original es este: http://www.programacion.net/html/articulo/tw_menus3/

Aunque en el ejemplo sí que funciona pintándose encima de la página

Muchas gracias...

Un saludo
  #2 (permalink)  
Antiguo 26/10/2005, 04:54
Avatar de ludovico2000  
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 20 años, 5 meses
Puntos: 2
Pon tu código a ver... y otra cosa: el link que has puesto no funciona
  #3 (permalink)  
Antiguo 26/10/2005, 05:18
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 18 años, 10 meses
Puntos: 0
Novato

A ver, el código del fichero donde está el menú es este:

<SCRIPT language="javascript">
<!--
function escribirMenus() {
top.principal.document.write('<DIV id="menu0" CLASS="menu">' +
'<a href="embrionempresarial.htm"><img src="embrion%20empresarial.jpg"></a><BR>' +
'<a href="valoracionperfil.htm"><img src="valoracion%20perfil%20emprendedor.jpg"></a><BR>' +
'<a href="planempresaonline.htm"><img src="plan%20empresa%20online.jpg"><BR>' +
'<a href="configuracionsociedad.htm"><img src="configuracion%20sociedad.jpg"></a><BR>' +
'<a href="seleccionfj.htm"><img src="seleccion%20fj.jpg"></a><BR>' +
'<a href="financiacioninicial.htm"><img src="financiacion%20inicial.jpg"></a><BR>' +
'<a href="planinicioactividad.htm"><img src="plan%20inicio%20actividad.jpg"></a><BR>' +
'<a href="planoperativoonline.htm"><img src="plan%20operativo%20online.jpg"></a><BR>' +
'<a href="diseñoprocesosnegocio.htm"><img src="diseno%20negocio.jpg"></a><BR>' +
'</div>' +
'<DIV id="menu1" CLASS="menu">' +
'<a href="evaluacionrequerimientos.htm"><img src="evaluacion%20requerimientos.jpg"></a><BR>' +
'<a href="diseñopcre.htm"><img src="diseno%20pcre.jpg"></a><BR>' +
'<a href="diseñoprocesospcre.htm"><img src="diseno%20procesos%20pcre.jpg"></a><BR>' +
'<a href="diseñoprocedimientos.htm"><img src="diseno%20procedimientos%20pcre.jpg"></a><BR>' +
'<a href="diseñopuestostrabajo.htm"><img src="diseno%20puesos%20trabajo%20pcre.jpg"></a><BR>' +
'<a href="herramientassensibilizacion.htm"><img src="herramientas%20sensibilizacion.jpg"></a><BR>' +
'<a href="herramientasformacionee.htm"><img src="herramientas%20formacion.jpg"></a><BR>' +
'<a href="herramientasarranque.htm"><img src="herramientas%20arranque%20empresa.jpg"></a><BR>' +
'<a href="plataformatelegestion.htm"><img src="plataforma%20telegestion.jpg"></a><BR>' +
'<a href="cuadromandosintegral.htm"><img src="cuadro%20mandos.jpg"></a><BR>' +
'<a href="deteccionoportunidades.htm"><img src="deteccion%20oportunidades.jpg"></a><BR>' +
'<a href="deteccionrecursos.htm"><img src="deteccion%20recursos.jpg"></a><BR>' +
'</div>');
}

// Objeto de deteccion del navegador
function DetectorNavegador() {
this.NS4 = document.layers;
this.IE4 = document.all;
this.DOM = document.getElementById;
this.DHTML = this.NS4 || this.IE4 || this.DOM;
}

var soporta = new DetectorNavegador();
var menu = new Array();
var menuActivo = null;
var wref = parent.principal;

// Objeto Menu
function activarMenu() {
if (soporta.DHTML && menuActivo != this) {
if (menuActivo) menuActivo.ocultar();
menuActivo = this;
this.mostrar();
}
}

function mostrarMenu() {
if (!eval(this.capaRefStr)) return;
this.cambiarPosicion();
eval(this.capaRefStr + this.estiloRefStr + '.visibility = "visible"');
if (soporta.DOM)
this.domRef.style.display = "block";
}

function ocultarMenu() {
if (!eval(this.capaRefStr)) return;
eval(this.capaRefStr + this.estiloRefStr + '.visibility = "hidden"');
}

function cambiarPosicionMenu() {
eval(this.capaRefStr + this.estiloRefStr + this.topRefStr + ' = this.top + ' + this.topOffsetStr);
eval(this.capaRefStr + this.estiloRefStr + this.leftRefStr + ' = this.left + ' + this.leftOffsetStr);
}

function Menu(capaID, top, left, width) {
this.activar = activarMenu;
this.mostrar = mostrarMenu;
this.ocultar = ocultarMenu;
this.cambiarPosicion = cambiarPosicionMenu;
if (soporta.DOM) {
this.domRef = wref.document.getElementById(capaID);
if (!soporta.IE4) {
this.domRef.style.width = width;
this.domRef.style.position = "fixed";
}
}
this.capaRefStr = (soporta.NS4) ?
'wref.document["'+capaID+'"]' :
((soporta.IE4) ? 'wref.document.all["'+capaID+'"]' : 'this.domRef');
this.estiloRefStr = (soporta.NS4) ? '' : '.style';
this.topRefStr = (soporta.IE4) ? '.pixelTop' : '.top';
this.leftRefStr = (soporta.IE4) ? '.pixelLeft' : '.left';
this.topOffsetStr = (soporta.NS4) ? 'wref.pageYOffset' : (soporta.IE4 ? 'wref.document.body.scrollTop' : '0');
this.leftOffsetStr = (soporta.NS4) ? 'wref.pageXOffset' : (soporta.IE4 ? 'wref.document.body.scrollLeft' : '0');
this.top = top;
this.left = left;
this.cambiarPosicion();
if (soporta.DOM)
this.domRef.style.display = "none";
}

// Manejo de eventos
function ocultarMenuActivo(e) {
if (menuActivo) {
menuActivo.ocultar();
menuActivo = null;
}
}

function moverMenuActivo(e) {
if (menuActivo)
menuActivo.cambiarPosicion();
}

// Inicializacion
function inicializar() {
if (soporta.DHTML) {
if (soporta.NS4)
document.captureEvents(Event.MOUSEUP);
document.onmouseup = ocultarMenuActivo;
}
menu[0] = new Menu("menu0", 0, 0, 120);
menu[1] = new Menu("menu1", 0, 0, 120);
}

// -->
</SCRIPT>



Y después, en la página central donde deben aparecer los desplegables, pongo primero la referencia al fichero .css donde guardo la estructura de menu, y antes de que se acabe la cabecera:


<SCRIPT language="javascript">
var wref = parent.opciones;

// Inicializacion
function inicializar() {
if (!wref.inicializar) {
setTimeout("inicializar()",10);
return;
}
if (wref.soporta.DHTML) {
if (wref.soporta.NS4)
document.captureEvents(Event.MOUSEUP | Event.MOUSEMOVE);
document.onmouseup = wref.ocultarMenuActivo;
document.onmousemove = wref.moverMenuActivo;
wref.inicializar();
}
}

window.onload = inicializar;
</SCRIPT>


Y por último después de <body> pongo esto:


<SCRIPT LANGUAGE="Javascript">
<!--
if (top.opciones.escribirMenus)
top.opciones.escribirMenus();
else
history.go(0);
//-->
</script>


Hay mucho mejunje ahi, pero bueno.... Gracias a quien intente ayudarme

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:56.