Foros del Web » Programando para Internet » Javascript »

Ayudenme con este menu.

Estas en el tema de Ayudenme con este menu. en el foro de Javascript en Foros del Web. Hola masters: Estaba buscando un menu para mi pàgina y en mundojavascript encontre un menu que me gusta pero, no entiendo el final dice asi ...
  #1 (permalink)  
Antiguo 03/03/2003, 17:18
 
Fecha de Ingreso: abril-2002
Mensajes: 303
Antigüedad: 22 años
Puntos: 0
Pregunta Ayudenme con este menu.

Hola masters:
Estaba buscando un menu para mi pàgina y en mundojavascript encontre un menu que me gusta pero, no entiendo el final dice asi entre <head></heas> poner lo siguiente<!-- Consigue este JavaScript y otros muchos en MundoJavaScript.com -->
<style>
<!--

.menuskin{
position:absolute;
width:165px;
background-color:menu;
border:2px solid black;
font:normal 12px Verdana;
line-height:18px;
z-index:100;
visibility:hidden;
}

.menuskin a{
text-decoration:none;
color:black;
padding-left:10px;
padding-right:10px;
}

#mouseoverstyle{
background-color:highlight;
}

#mouseoverstyle a{
color:white;
}
-->
</style>

<script language="JavaScript1.2">

//Pop-it menu- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var linkset=new Array()
//SPECIFY MENU SETS AND THEIR LINKS. FOLLOW SYNTAX LAID OUT

linkset[0]='<div class="menuitems"><a href="http://www.precios10.com">Ordenadores</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://www.cambiabanners.com">Intercambio de banners</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://www.iaupa.com">Recursos web</a></div>'

linkset[1]='<div class="menuitems"><a href="http://msnbc.com">MSNBC</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://cnn.com">CNN</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://abcnews.com">ABC News</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://www.washingtonpost.com">Washington Post</a></div>'

////No need to edit beyond here

var ie4=document.all&&navigator.userAgent.indexOf("Ope ra")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers

function showmenu(e,which){

if (!document.all&&!document.getElementById&&!documen t.layers)
return

clearhidemenu()

menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj

if (ie4||ns6)
menuobj.innerHTML=which
else{
menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
menuobj.document.close()
}

menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y

//Find out how close the mouse is to the corner of the window
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.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.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX

//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
menuobj.thestyle.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.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
}

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

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

function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}

function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
else{
while(source_el.id!="popmenu"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
}
}
}

if (ie4||ns6)
document.onclick=hidemenu

</script>
luego entre <body></body> poner lo suiente
onMouseover="clearhidemenu();highlightmenu(event,' on')" onMouseout="highlightmenu(event,'off');dynamichide (event)">
</div>

<a href="#" onMouseover="showmenu(event,linkset[0])" onMouseout="delayhidemenu()">Enlaces 1</a><br>
<a href="#" onMouseover="showmenu(event,linkset[1])" onMouseout="delayhidemenu()">Enlaces 2</a>
Hasta aqui todo bién, la duda biene ahora, por que dice lo siguiente.
Hay que añadir el siguiente evento onload dentro de la etiqueta BODY:
onload=songticker()
No se que es esto pero si no lo utilizo me funciona y si lo utilizo no, por favor, diganme el por que, i que es eso, i les afradeceria que me dijeran si lo debo utilizar o no?.
Gracias de antemano.
  #2 (permalink)  
Antiguo 04/03/2003, 14:38
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
parece que siempre te toco yo

mira, songticker() es una función (o habría de serlo) y ponerlo en el evento onload de body provoca que cuando el documento esté cargado, llama a esa función que se supone debe estar previamente definida.

Pero no lo está. No he visto ninguna función con ese nombre en el script que has dejado.

Con lo cual, el objeto no existe (debes de encontrarte con ese error al tratar de cargar la página "se esperaba un objeto")

Así, que no lo pongas Si llamas a un objeto que no existe, da error y no furula res més.

Saludos
  #3 (permalink)  
Antiguo 04/03/2003, 15:15
 
Fecha de Ingreso: abril-2002
Mensajes: 303
Antigüedad: 22 años
Puntos: 0
UN MILLON DE GRACIAS.

Hola tunait, un millon de gracias, si el tipo de error que me daba era ese, y nuevamente un millon de gracias.
  #4 (permalink)  
Antiguo 04/03/2003, 15:20
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 5 meses
Puntos: 5
tuni
Buena observación de ambos

Miré el menú que dices...es el de "Links en cajas" en esa web.
Envie email para que le corrijan

De hecho...en
http://www.dynamicdrive.com/dynamicindex1/popit.htm
está en otro orden más razonable.
__________________
Yanira
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:14.