1 [phpbb3]Error en codigo de menú Sáb Feb 23, 2013 3:36 am
yuske
Hola a todos, estoy haciendo unos pequeños cambios y pues espero que puedan ayudarme con este problema
En uno de mis foros he tratado de implementar un par de menus de eso en los que pasas el cursor por una imagen y muestra un cuadro con las opciones del menu. El primero que coloque funciona muy bien, pero el segundo no. Al modificar el linkset[] para el segundo menu me lo marca como indefinido y no encuentro el error.
Dejo acá abajo los codigos que uso
Ojala me puedan ayudar.
Por cierto, la version del foro es PhPbb3 y la direccion en www.alzerath.foroactivo.com
En uno de mis foros he tratado de implementar un par de menus de eso en los que pasas el cursor por una imagen y muestra un cuadro con las opciones del menu. El primero que coloque funciona muy bien, pero el segundo no. Al modificar el linkset[] para el segundo menu me lo marca como indefinido y no encuentro el error.
Dejo acá abajo los codigos que uso
- Spoiler:
- Código:
<a href="" onMouseover="showmenu(event,linkset[1])" onMouseout="delayhidemenu()"><img src="http://img442.imageshack.us/img442/8003/historiasdestacadas.png" border="0"></a>
Nota: el primer linkset (el que si funciona) lleva el 0, a este le he puesto el numero consecutivo, es decir el 1.
- Código:
<style type="text/css">
#popitmenu{
-moz-border-radius: 12px 12px 12px 12px;
position: absolute;
background-color: #363636;
border:2px solid #B8B8B8;
font: normal 12px Arial;
line-height: 18px;
z-index: 100;
visibility: hidden;
}
#popitmenu a{
text-decoration: none;
padding-left: 6px;
color: #B8B8B8;
display: block;
}
#popitmenu a:hover{ /*hover background color*/
-moz-border-radius: 12px 12px 12px 12px;
background-color: #418fbc;
color: white;
font-style: italic;
}
</style>
<script type="text/javascript">
var defaultMenuWidth="150px" //set default menu width.
var linkset = new Array()
//SPECIFY MENU SETS AND THEIR LINKS. FOLLOW SYNTAX LAID OUT
linkset[1]+='<a href="http://alzerath.foroactivo.mx/t274-e-el-primer-paso-capitulo-8-up-extras-capitulo-1-up-22-2#2981"> El Primer Paso </a>'
linkset[1]+='<a href="http://alzerath.foroactivo.mx/t51p40-e15-shining-darkness-capitulo-28-23-de-enero#2980">Shining Darkness</a>'
linkset[1]+='<a href="http://alzerath.foroactivo.mx/t49p80-e-la-caida-de-los-dioses-cap-4221-02-13#2977"> La Caída de los Dioses </a>'
linkset[1]+='<a href="http://alzerath.foroactivo.mx/t49p80-e-la-caida-de-los-dioses-cap-4221-02-13#2977"> La Caída de los Dioses </a>'
////No need to edit beyond here
var ie5=document.all && !window.opera
var ns6=document.getElementById
if (ie5||ns6)
document.write('<div id="popitmenu" onMouseover="clearhidemenu();" onMouseout="dynamichide(event)"></div>')
function iecompattest(){
return (document.compatMode && document.compatMode.indexOf("CSS")!=-1)? document.documentElement : document.body
}
function showmenu(e, which, optWidth){
if (!document.all&&!document.getElementById)
return
clearhidemenu()
menuobj=ie5? document.all.popitmenu : document.getElementById("popitmenu")
menuobj.innerHTML=which
menuobj.style.width=(typeof optWidth!="undefined")? optWidth : defaultMenuWidth
menuobj.contentwidth=menuobj.offsetWidth
menuobj.contentheight=menuobj.offsetHeight
eventX=ie5? event.clientX : e.clientX
eventY=ie5? event.clientY : e.clientY
//Find out how close the mouse is to the corner of the window
var rightedge=ie5? iecompattest().clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie5? iecompattest().clientHeight-eventY : window.innerHeight-eventY
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX-menuobj.contentwidth+"px" : window.pageXOffset+eventX-menuobj.contentwidth+"px"
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX+"px" : window.pageXOffset+eventX+"px"
//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.style.top=ie5? iecompattest().scrollTop+eventY-menuobj.contentheight+"px" : window.pageYOffset+eventY-menuobj.contentheight+"px"
else
menuobj.style.top=ie5? iecompattest().scrollTop+event.clientY+"px" : window.pageYOffset+eventY+"px"
menuobj.style.visibility="visible"
return false
}
function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
function hidemenu(){
if (window.menuobj)
menuobj.style.visibility="hidden"
}
function dynamichide(e){
if (ie5&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}
function delayhidemenu(){
delayhide=setTimeout("hidemenu()",500)
}
function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}
if (ie5||ns6)
document.onclick=hidemenu
</script>
Ojala me puedan ayudar.
Por cierto, la version del foro es PhPbb3 y la direccion en www.alzerath.foroactivo.com