Foros del Web » Programando para Internet » Javascript »

Quickmenu menu desplegable

Estas en el tema de Quickmenu menu desplegable en el foro de Javascript en Foros del Web. Holas, Me copiado un horizontal dropdown menu de la sgte. página web: http://simplythebest.net/scripts/DHT...script_91.html he seguido todos los pasos para hacer el menu, pero cuando abro ...
  #1 (permalink)  
Antiguo 19/05/2006, 15:58
 
Fecha de Ingreso: julio-2004
Mensajes: 25
Antigüedad: 19 años, 9 meses
Puntos: 0
Quickmenu menu desplegable

Holas,

Me copiado un horizontal dropdown menu de la sgte. página web: http://simplythebest.net/scripts/DHT...script_91.html

he seguido todos los pasos para hacer el menu, pero cuando abro mi página me posiciono sobre la imágen y si me muestra el menu desplegable pero apenas saco el mouse de la imágen se quita el menu y no puedo seleccionar los links que tengo en el menu. Alguien me puede decir que debo hacer para que no suceda esto.

Gracias
  #2 (permalink)  
Antiguo 20/05/2006, 09:40
Usuario no validado
 
Fecha de Ingreso: febrero-2003
Ubicación: En algun lugar del mundo
Mensajes: 115
Antigüedad: 21 años, 2 meses
Puntos: 0
De acuerdo

Amigo en días anteriores yo tuve el mismo problema que tu y buscando información encontré 2 soluciones al problema.

El primero fue desarrollar el menú con un Software llamado NavStudio de la OpenCube; es una excelente herramienta y no tienes que tirar mucho código y de paso los menúes tienen animación.

La otra solución te la coloco acá, la cual se basa en un menú emergente basado en una zona interactiva; este tambien te puede ayudar, pero no tiene animación.
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
#dropmenudiv
{ 
position: absolute;
border:0px solid black;
font:normal 11px Verdana;
line-height:20px;
z-index: 50%;
}

#dropmenudiv a
{ /*Este es el menú cuando aparece*/
border: 1px solid #E6E600;
width: 150%; height:20px;
display: block;
text-indent: 10px;
color: #E6E600;
font-weight: bold;
text-decoration: none;
margin: 0px 0px 0px 0px;
color-margin: #E6E600;
border-color: #E6E600;
}

#dropmenudiv a:hover
{ /*color de las opciones cuando el usuario está sobre la opción*/
background-color: #E6E600;
color:#006600;
border-color: #006600;
}
</style>
<script type="text/javascript">
//Contents for menu 1
var menu1=new Array()
menu1[0]='<a href="http://...">Opción 1</a>'
menu1[1]='<a href="http://...">Opción 2</a>'
menu1[2]='<a href="http://...">Opción 3</a>'
menu1[3]='<a href="http://...">Opción 4</a>'
menu1[4]='<a href="http://...">Opción 5</a>'
menu1[5]='<a href="http://...">Opción 6</a>'
menu1[6]='<a href="http://...">Opción 7</a>'
menu1[7]='<a href="http://...">Opción 8</a>'
var menuwidth='65px' //default menu width
var menubgcolor='#006600'  //menu bgcolor
var disappeardelay=250  //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes" //hide menu when user clicks within menu?
var ie4=document.all
var ns6=document.getElementById&&!document.all
if (ie4||ns6)
document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')
 
function getposOffset(what, offsettype)
{
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null)
{
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function showhide(obj, e, visible, hidden, menuwidth)
{
if (ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (menuwidth!="")
{
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=menuwidth
}
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
obj.visibility=visible
else if (e.type=="click")
obj.visibility=hidden
}

function iecompattest()
{
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge)
{
var edgeoffset=0
if (whichedge=="rightedge")
{
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
}
else
{
var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
}
return edgeoffset
}

function populatemenu(what)
{
if (ie4||ns6)
dropmenuobj.innerHTML=what.join("")
}

function dropdownmenu(obj, e, menucontents, menuwidth)
{
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
populatemenu(menucontents)
if (ie4||ns6)
{
showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
}
return clickreturnvalue()
}

function clickreturnvalue()
{
if (ie4||ns6) return false
else return true
}

function contains_ns6(a, b) 
{
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

 

function dynamichide(e)
{
if (ie4&&!dropmenuobj.contains(e.toElement))
delayhidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenu()
}

 

function hidemenu(e)
{
if (typeof dropmenuobj!="undefined")
{
if (ie4||ns6)
dropmenuobj.style.visibility="hidden"
}
}

 

function delayhidemenu()
{
if (ie4||ns6)
delayhide=setTimeout("hidemenu()",disappeardelay)
}

 

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

 

if (hidemenu_onclick=="yes")
document.onclick=hidemenu
</script>
</head>
 

<body>
<p><a href="default.htm" onClick="return clickreturnvalue()" onMouseover="dropdownmenu(this, event, menu1, '150px')" onMouseout="delayhidemenu()"><b><font size="2" color="#003300" style="text-decoration:none">Área de Trabajo</font></b></a></p>

<p>&nbsp;</p>

</body>

</html>
Eres libre de escoger la mejor alternativa o la que mas se adapte a tu necesidad.

Espera haberte ayudado....

Saludos y exitos....
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 23:55.