44 users online (0 members and 44 guests)  


  Results 1 to 4 of 4

Related

  1. Replies: 0
  2. simple xml problem    Forum: PHP Forum
    Replies: 2
  3. Replies: 1
  4. Please Help in a JavaScript Problem    Forum: Javascript Forum
    Replies: 2
  5. Help me with a Javascript problem!    Forum: Javascript Forum
    Replies: 10
  1. #1
    martin(rps)'s Avatar
    New User

    Status
    Offline
    Join Date
    Feb 2005
    Location
    notts uk
    Posts
    7

    Question Simple Javascript Problem - I think...

    Hi All,

    I might have missed something totally obvious here, I'm well wet behind the ears when it comes to scripting. I've got this nice looking script off Javascript Source:

    www.javascript.internet.com/navigation/slide-down-menu.html

    It's an expandable menu installed by popping the code into the body of the html page, which I did. When I view the page in a browser, there's no menu. I only get the Javascript Source link message at the bottom of the script.

    It's from a reliable source, and I just know I've done something dead obvious to mess it up... but can't figure out what for the life of me. The only thing that occurs to me is that it seems to reference another file or routine that isn't part of the script: <script language="JavaScript" src="sliding_menu.js"></script>

    I could be way out with that though!

    If anyone can offer their expertise, I would be well, well, well grateful. I really want to get this working!

    Thanks!

    Martin.


    Ps. I put a copy of a basic html page with the canned script in (unchanged) here:

    www.theretropostershop.com/Menu.htm

    It's just an html page with the script pasted in the body. A <body> tag was part of the script, creating a second on the page. (I tried removing it - it made no difference.) I left both tags in the uploaded page, which one should I use?

    I also put the script alone up in html in case it helps?:

    www.theretropostershop.com/OriginalScript.htm

  2. #2
    HTML's Avatar
    Administrator

    Status
    Offline
    Join Date
    Aug 2000
    Posts
    3,445

    Follow HTML On Twitter Add HTML on Facebook Add HTML on Google+ Add HTML on Linkedin Visit HTML's Youtube Channel
    You seemed to hit the nail on the head with the missing JS. I did some research and here it is
    Code:
    //free JavaScripts on http://www.ScriptBreaker.com
    
      var height = 20; // height of the menu headers
      var iheight = 15; // height of the menu_items
      
      var bgc = "lightyellow" // background color of the item
      var tc = "black" // text color of the item
      
      var over_bgc = "silver";
      var over_tc = "red";
      
      var speed = 0;
      var timerID = "";
      var N = (document.all) ? 0 : 1;
      var width = 152
      
    
    
      var self_menu = new Array();
    function write_menu()
    {
      smc = 0; // count the position of the self_menu
      document.write("<div style='position:absolute'>");
      mn = 0;
      mni = 1;
      start = -1;
      
      for(i=0;i<Link.length;i++)
      {
       la = Link[i].split("|");
    
       if (la[0] == "0")
       {
        if(start == 0) 
         {
          document.write("</div>");
          h =  csmc * iheight;
          tmn = mn; //-h
          self_menu[smc] = new Array(tmn,h,0,-2);
          smc++;
          mn--;
         }
         csmc = 0;
        document.write("<div class='menu' style='top:"+mn+";height:"+height+"' id='down"+smc+"' onclick='pull_down("+smc+","+mni+")'>&nbsp;"+ la[1] + "</div>");
        self_menu[smc] = new Array(mn,height,0,mni);
        smc++;
        mni++;
        mn+=height;
        start = 1;
       }
       else
       {
        if(start == 1) 
         {
          if(N)mn+=2;
           document.write("<div class='item_panel' id='down"+smc+"' style='top:"+mn+"'>");
           start = 0;
         }
        
        document.write("<a href='"+la[2]+"'");
        if (la[3] != "") document.write(" target='" + la[3] + "' ");
        document.write("><div class='item' id='d"+i+"' style='height:"+iheight);
        if (N) document.write(";width:150");
        document.write("' onmouseover='color(this.id)' onmouseout='uncolor(this.id)'>&nbsp;&nbsp;"+ la[1] + "</div></a>");
        csmc++;
       }
      }
      if (start == 0) 
       {
         document.write("</div>");
         h =  csmc * iheight;
         tmn = mn + 5; //-h
         self_menu[smc] = new Array(tmn,h,0);
         name = "down" + (self_menu.length-1);
         obj = document.getElementById(name);
         obj.style.borderBottomColor = "darkblue";
         obj.style.borderBottomWidth = 1;
         obj.style.borderBottomStyle = "solid";
       }
      document.write("</div>");
    }
      
    
    function color(obj)
    {
     document.getElementById(obj).style.backgroundColor = over_bgc;
     document.getElementById(obj).style.color = over_tc
    }
    
    function uncolor(obj)
    {
     document.getElementById(obj).style.backgroundColor = bgc;
     document.getElementById(obj).style.color = tc
    }
    
    function pull_down(nr,c)
    {
     if (timerID == "")
     {
     to = self_menu[nr+1][1]
     begin = nr + 2;
     if (timerID != "") clearTimeout(timerID);
     if (self_menu[nr+1][2] == 0)
     {
      self_menu[nr+1][2] = 1;
      if(nr == self_menu.length-2) {to++;}
      epull_down(begin,to,0);
     }
     else
     {
      to = 0;
      self_menu[nr+1][2] = 0;
      name = "down"+(nr+2);
      open_item = 0;
      for(i=0;i<nr;i++)
      {
       if(self_menu[i][2] == 1) 
        {open_item += self_menu[i][1];
        }
      }
      if (N == false) {open_item-= (c*1)};
      if (nr== self_menu.length-2) {val = self_menu[self_menu.length-1][1];to=-1;}
      else  val = parseInt(document.getElementById(name).style.top) -(open_item)-(c*height);
      epull_up(begin,to,val);
     }
     }
    }
    
    function epull_down(nr,to,nowv)
    {
     name = "down" + (nr-1);
     obj = document.getElementById(name).style.clip = "rect(0,"+width+","+(nowv+1)+",0)";
     for (i=nr;i<self_menu.length;i++)
     {
      name = "down" + i;
      obj = document.getElementById(name);
      obj.style.top = parseInt(obj.style.top)+1;
     }
     nowv++;
     if(nowv < to) timerID = setTimeout("epull_down("+nr+","+to+","+nowv+")",speed);
     else timerID = "";
    }
    
    function epull_up(nr,to,nowv)
    {
     name = "down" + (nr-1);
     obj = document.getElementById(name).style.clip = "rect(0,"+width+","+nowv+",0)";
     for (i=nr;i<self_menu.length;i++)
     {
      name = "down" + i;
      obj = document.getElementById(name);
      obj.style.top = parseInt(obj.style.top)-1;
     }
     nowv--;
     if(nowv > to) timerID = setTimeout("epull_up("+nr+","+to+","+nowv+")",speed);
     else timerID = "";
    }
    
    function startup(nr)
    {
     write_menu();
     if (nr != 0)
     {
     for(i=0;i<self_menu.length;i++)
     {
      if(self_menu[i][3] == nr) pull_down(i,nr)
      i==self_menu.length;
     }
     }
    }

  3. #3
    martin(rps)'s Avatar
    New User

    Status
    Offline
    Join Date
    Feb 2005
    Location
    notts uk
    Posts
    7

    Smile Thanks a million!

    Hi Dave,

    Thanks a lot for that ultra-helpful post, that's really good of you to go to so much effort. I only just got notification of your reply, it's such a shame I didn't see it sooner... would've saved me a "few" hours... oh well, that's life I guess.

    Funnily enough, the page I got the original script from (that was missing a link to download the extra file), now HAS a link on to it. A recent addition to an old page.

    I'm so chuffed it's all sorted and working. Thanks again and again and again.

    All the best Sir,

    Martin

    PS. As I preview, I see the selected "weekly email notification"... forum AND javascript newbie, eh?

  4. #4
    HTML's Avatar
    Administrator

    Status
    Offline
    Join Date
    Aug 2000
    Posts
    3,445

    Follow HTML On Twitter Add HTML on Facebook Add HTML on Google+ Add HTML on Linkedin Visit HTML's Youtube Channel
    Glad you got it working

    D



Tags for this Thread