Results 1 to 4 of 4

Thread: [JAVA] Assistance/Guru Required

  1. #1
    Squeeler Vini's Avatar
    Join Date
    Jul 2003
    Location
    Sheffield
    Posts
    1,769
    Thanks
    44
    Thanked
    8 times in 8 posts

    [JAVA] Assistance/Guru Required

    Code:
    <script language="JavaScript">
    function goToURL() { history.go(-1); }
    </script>
    <style>
    .menu
    {
    background-color:#336699;
    border:1px solid #336699;
    width:150px;
    font-size:11px;
    font-family:verdana;
    position: absolute;
    font:bold;
    color: #ffffff;
    cursor: hand;
    }
    .item_panel
    {
    width:150px;
    border-left:1px solid #336699;
    border-right:1px solid #336699;
    clip:rect(0,150,0,0);
    position:absolute;
    }
    .item_panel a
    {
    text-decoration:none;
    color:white;
    cursor:hand;
    }
    .item
    {
    background-color: #336699;
    width: 148px;
    font-size: 10px;
    font-family: verdana;
    
    }
    </style>
    <script language="JavaScript">
    var height = 20; // height of the menu headers
    var iheight = 15; // height of the menu_items
    var bgc = "#336699" // background color of the item
    var tc = "white" // text color of the item
    var over_bgc = "darkblue";
    var over_tc = "white";
    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+")'> "+ 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)'> "+ 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 = 0;
    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;
    }
    }
    }
    </script>
    <body text="#FFFFFF" bgcolor="#336699" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
    
    <table width=150><tr><td>
    <script language="JavaScript">
    //Link[nr] = "position [0 is menu/1 is item],Link name,url,target (blank|top|frame_name)"
    var Link = new Array();
    Link[0] = "0|Health And Safety";
    Link[1] = "1|Forms|http://www.vini.co.uk|_main";
    Link[2] = "1|Policy|http://www.vini.co.uk/webhosting/index.php|_main";
    Link[3] = "0|People";
    Link[4] = "1|Recruitment|http://www.vini.co.uk/signup/tos.php|";
    Link[5] = "1|Induction|http://www.vini.co.uk/global/lostpassword.php|"
    Link[6] = "1|Skills Matrix|http://www.vini.co.uk/global/lostpassword.php|"
    Link[7] = "1|Development|http://www.vini.co.uk/global/lostpassword.php|"
    Link[8] = "1|Training Records|http://www.vini.co.uk/global/lostpassword.php|"
    Link[9] = "1|Forms|http://www.vini.co.uk/global/lostpassword.php|"
    Link[10] = "1|Who's Who|http://www.vini.co.uk/global/lostpassword.php|"
    Link[11] = "1|Company And Beyond|http://www.vini.co.uk/global/lostpassword.php|"
    Link[12] = "0|Production";
    Link[13] = "1|Help|http://www.vini.co.uk/help/index.php|";
    Link[14] = "1|Copy/Paste|http://www.vini.co.uk/help/copypaste.php|";
    startup(4);
    </script>
    at the minute the scroll down of the menu is slow, i want it to be instant... also, i want the previous menu to collapse when opening a new one... you'd need to look at the script in a browser to see what i mean, unless you can read java


    example - http://www.vini.co.uk/upload/files/java.htm

  2. #2
    Senior Member Kezzer's Avatar
    Join Date
    Sep 2003
    Posts
    4,863
    Thanks
    12
    Thanked
    5 times in 5 posts
    This isn't Java, this is JavaScript. There's a VERY big difference between the two languages

  3. #3
    Pixel Abuser Spunkey's Avatar
    Join Date
    Nov 2003
    Location
    Milton Keynes
    Posts
    1,523
    Thanks
    0
    Thanked
    0 times in 0 posts
    The menu you're after can be done much simpler using a javascript/CSS combination (aka DHTML)
    Give me a few mins and I'll dig you out an example

    *edit*
    doh dont have any examples on this machine, but if you google for 'collapsable menu DHTML' it should get you something
    Last edited by Spunkey; 14-07-2005 at 09:37 AM.

  4. #4
    Pixel Abuser Spunkey's Avatar
    Join Date
    Nov 2003
    Location
    Milton Keynes
    Posts
    1,523
    Thanks
    0
    Thanked
    0 times in 0 posts
    righty because I'm just that damn bored today i've modified youre code to get rid of the timer'd clipping shenanegans so the menus simply just appear now.

    you probably should know this only works in Firefox, IE throws an eppy fit. Not sure why, I'll leave that for you to figure out

    Code:
    <html>
    <head>
    	<title>Menu Test</title>
    	<style>
    		DIV {
    			position: relative}
    		BODY, A {
    			font-family: arial;
    			font-size: 10pt;
    			color: #FFFFFF; 
    			text-decoration: none}	
    		.header {
    			font-size: 9pt;
    			font-weight: bold}	
    		.subitem {
    			font-size: 8pt}
    		.off {
    			display: none}
    		.on {
    			display: block}
    	</style>
    	<script language="JavaScript">		
    		var iMaxHeaderNo = 0
    		
    		function WriteMenu() {
    			var arrMenu
    			var iHeaderNo = 0
    			var iSubNo = 0
    			var iMenuHeight = 18
    			var iTop = 0
    			var szSubDiv = ""
    		
    			document.write("<div style='position: absolute; width: 150px'>")
    			// Iterate through Menu Array
    			for(i=0; i<Link.length; i++) {
    				// Split this line
    				arrMenu = Link[i].split("|");
    				
    				if (arrMenu[0] == "0") {
    					// Close div of preceeding subitem list, if not first time round
    					if (iHeaderNo>0) {
    						document.write("</div")
    					}
    					
    					// This is a header
    					iHeaderNo++;				
    					iMaxHeaderNo = iHeaderNo
    					iSubNo = 1;
    					szSubDiv = "Sub" + iHeaderNo;
    					document.write("<div class='header' id='" + iHeaderNo + "' onclick=ShowSub('Sub" + iHeaderNo + "') onmouseover='Highlight(this.id)' onmouseout='DeHighlight(this.id)'>" + arrMenu[1] + "</div>");} 
    				else {
    					// if first subitem, create containing div
    					if (iSubNo==1) {
    						document.write("<div class='off' id='Sub" + iHeaderNo + "'>")
    					}
    					
    					document.write("<a href='" + arrMenu[2] + "' ");
    					if (arrMenu[3] != "") document.write(" target='" + arrMenu[3] + "' ")
    					document.write("><div class='subitem' id='" + iHeaderNo + "_ " + iSubNo + "' onmouseover='Highlight(this.id)' onmouseout='DeHighlight(this.id)'>&nbsp;&nbsp;" + arrMenu[1] + "</div></a>")
    					iSubNo++
    				}
    			}
    			document.write("</div>")
    		}
    				
    		function ShowSub(id) {
    			var szDivID = ""
    			for (i=1; i<=iMaxHeaderNo; i++) {
    				szDivID = "Sub" + i
    				document.getElementById(szDivID).className = 'off'
    			}
    			document.getElementById(id).className = 'on'
    		}
    		
    		function Highlight(id) {
    			document.getElementById(id).style.backgroundColor = "#000000";
    			document.getElementById(id).style.color = "#bfbfbf"
    		}	
    		
    		function DeHighlight(id) {
    			document.getElementById(id).style.backgroundColor = "#336699";
    			document.getElementById(id).style.color = "#FFFFFF"
    		}	
    	</script>
    </head>
    
    <body text="#FFFFFF" bgcolor="#336699" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
    	<script language="JavaScript">
    		//Link[nr] = "position [0 is menu/1 is item],Link name,url,target (blank|top|frame_name)"
    		var Link = new Array();
    		Link[0] = "0|Health And Safety";
    		Link[1] = "1|Forms|http://www.vini.co.uk|_main";
    		Link[2] = "1|Policy|http://www.vini.co.uk/webhosting/index.php|_main";
    		Link[3] = "0|People";
    		Link[4] = "1|Recruitment|http://www.vini.co.uk/signup/tos.php|";
    		Link[5] = "1|Induction|http://www.vini.co.uk/global/lostpassword.php|"
    		Link[6] = "1|Skills Matrix|http://www.vini.co.uk/global/lostpassword.php|"
    		Link[7] = "1|Development|http://www.vini.co.uk/global/lostpassword.php|"
    		Link[8] = "1|Training Records|http://www.vini.co.uk/global/lostpassword.php|"
    		Link[9] = "1|Forms|http://www.vini.co.uk/global/lostpassword.php|"
    		Link[10] = "1|Who's Who|http://www.vini.co.uk/global/lostpassword.php|"
    		Link[11] = "1|Company And Beyond|http://www.vini.co.uk/global/lostpassword.php|"
    		Link[12] = "0|Production";
    		Link[13] = "1|Help|http://www.vini.co.uk/help/index.php|";
    		Link[14] = "1|Copy/Paste|http://www.vini.co.uk/help/copypaste.php|";
    		WriteMenu();
    	</script>
    </body>
    </html>

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Microsoft XP 64 feedback required
    By m0cea in forum Software
    Replies: 26
    Last Post: 19-07-2005, 09:31 PM
  2. Do we have any J2EE gurus on the forums?
    By LWA in forum Software
    Replies: 38
    Last Post: 15-01-2005, 05:55 AM
  3. Whats required?
    By Crispy in forum PC Hardware and Components
    Replies: 3
    Last Post: 19-11-2004, 07:32 PM
  4. New CPU Fan required
    By Matt_2000_17 in forum PC Hardware and Components
    Replies: 10
    Last Post: 11-02-2004, 02:30 PM
  5. uni courses ! help required !
    By Swafe in forum General Discussion
    Replies: 32
    Last Post: 16-10-2003, 06:09 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •