Avatar billede jonas_net Nybegynder
06. januar 2004 - 09:49

Menu hide funktion

Hej !
Jeg har fundet en menu som jeg vil benytte på mit site. Jeg kan godt få den til at virke, men jeg kan ikke få den til at folde sammen automatisk, når man fjerner musen fra menu området. Jeg håber at der er nogen som kan hjælpe. Jeg ved meget lidt om javascript.. Men koden jeg har fundet ser således ud:



  function InitMenu()
  {
    var bar = menuBar.children   

    for(var i=0;i < bar.length;i++)
        {
          var menu=eval(bar[i].menu)
          menu.style.visibility = "hidden"
          bar[i].onmouseover = new Function("ShowMenu("+bar[i].id+")")
          var Items = menu.children
          for(var j=0; j<Items.length; j++)
            {
              var menuItem = eval(Items[j].id)
               
                if(menuItem.menu != null)
                  {
                    menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
                    //var tmp = eval(menuItem.id+"_Arrow")
                    // tmp.style.pixelLeft = menu.getBoundingClientRect().Right //- tmp.offsetWidth - 15
                    FindSubMenu(menuItem.menu)}
             
                if(menuItem.cmd != null)
                  {
                  menuItem.onclick = new Function("Do("+menuItem.id+")") }
                 
              menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
           
            }   
       
        } 
  }
  function FindSubMenu(subMenu)
  {
        var menu=eval(subMenu)
        var Items = menu.children
          for(var j=0; j<Items.length; j++)
            {
              menu.style.visibility = "hidden"
              var menuItem = eval(Items[j].id)
             
             
              if(menuItem.menu!= null)
                {
                    menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
                    // var tmp = eval(menuItem.id+"_Arrow")
                    //tmp.style.pixelLeft = 35 //menuItem.getBoundingClientRect().right - tmp.offsetWidth - 15
                    FindSubMenu(menuItem.menu)
                }

                if(menuItem.cmd != null)
                  {
                  menuItem.onclick = new Function("Do("+menuItem.id+")") }
                 
              menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
               
            } 
  }
  function ShowMenu(obj)
  {
    HideMenu(menuBar)
    var menu = eval(obj.menu)
    var bar = eval(obj.id)
    bar.className="barOver"
    menu.style.visibility = "visible"
    menu.style.pixelTop =  obj.getBoundingClientRect().top + obj.offsetHeight + Bdy.scrollTop
    menu.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft
  }
 
  function highlight(obj)
  {
    var PElement = eval(obj.parentElement.id)
    if(PElement.hasChildNodes() == true)
    {  var Elements = PElement.children
      for(var i=0;i<Elements.length;i++)
      {
          TE = eval(Elements[i].id)
          TE.className = "menuItem"
      }
      }
    obj.className="ItemMouseOver"
    window.defaultStatus = obj.title
    ShowSubMenu(obj)
  }
 
  function Do(obj)
  {
    var cmd = eval(obj).cmd   
    window.navigate(cmd)
   
  }
 
  function HideMenu(obj)
  {
          if(obj.hasChildNodes()==true)
              { 
                var child = obj.children   
               
                for(var j =0;j<child.length;j++)
                  {
                    if (child[j].className=="barOver")
                    {var bar = eval(child[j].id)
                      bar.className="Bar"}
                     
                    if(child[j].menu != null)
                      {
                          var childMenu = eval(child[j].menu)
                          if(childMenu.hasChildNodes()==true)
                              HideMenu(childMenu)
                         
                          childMenu.style.visibility = "hidden"
                        }
                  }
             
              }
  }
  function ShowSubMenu(obj)
  {
    PMenu = eval(obj.parentElement.id)
      HideMenu(PMenu)
    if(obj.menu != null)
    {
    var menu = eval(obj.menu)
    menu.style.visibility = "visible"
    menu.style.pixelTop =  obj.getBoundingClientRect().top + Bdy.scrollTop
    menu.style.pixelLeft = obj.getBoundingClientRect().right + Bdy.scrollLeft
    if(menu.getBoundingClientRect().right > window.screen.availWidth )
      menu.style.pixelLeft = obj.getBoundingClientRect().left - menu.offsetWidth
    }
  }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester