Solved

Javascript newbie

Posted on 2010-11-14
5
453 Views
Last Modified: 2012-08-14
I am new to javascript and am using some free code I found on the net to try to learn, so please bare with me if I do not explain thing correctly.

I downloaded a free slider menu and got it working.  The problem is the load state (or state it is in when its first loaded) is not what I expected.  

If you look at the following website

aliviarosevona.com

When it loads the sesame street image is open.  If you mouse over any image then bring your mouse out then are all collapsed, and this is how I would expect it to be when it loads.

Hope I explained this correctly.

Any help would be appreciated. Java code attached
var slideMenu=function(){

	var sp,st,t,m,sa,l,w,gw,ot;

	return{

		build:function(sm,sw,mt,s,sl,h){

			sp=s; st=sw; t=mt;

			m=document.getElementById(sm);

			sa=m.getElementsByTagName('li');

			l=sa.length; w=m.offsetWidth; gw=w/l;

			ot=Math.floor((w-st)/(l-1)); var i=0;

			for(i;i<l;i++){s=sa[i]; s.style.width=gw+'px'; this.timer(s)}

			if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)}

		},

		timer:function(s){

			s.onmouseover=function(){clearInterval(m.htimer);clearInterval(m.timer);m.timer=setInterval(function(){slideMenu.slide(s)},t)}

			s.onmouseout=function(){clearInterval(m.timer);clearInterval(m.htimer);m.htimer=setInterval(function(){slideMenu.slide(s,true)},t)}

		},

		slide:function(s,c){

			var cw=parseInt(s.style.width);

			if((cw<st && !c) || (cw>gw && c)){

				var owt=0; var i=0;

				for(i;i<l;i++){

					if(sa[i]!=s){

						var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width);

						if(ow<gw && c){oi=Math.floor((gw-ow)/sp); oi=(oi>0)?oi:1; o.style.width=(ow+oi)+'px';

						}else if(ow>ot && !c){oi=Math.floor((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)+'px'}

						if(c){owt=owt+(ow+oi)}else{owt=owt+(ow-oi)}}}

				s.style.width=(w-owt)+'px';

			}else{clearInterval(m.timer);clearInterval(m.htimer)}

		}

	};

}();

Open in new window

0
Comment
Question by:savone
  • 3
  • 2
5 Comments
 
LVL 14

Expert Comment

by:ali_kayahan
ID: 34131006
here you are ;
<script>

var slideMenu=function(){

	var sp,st,t,m,sa,l,w,gw,ot;

	return{

		build:function(sm,sw,mt,s,sl,h){

			sp=s; st=sw; t=mt;

			m=document.getElementById(sm);

			sa=m.getElementsByTagName('li');

			l=sa.length; w=m.offsetWidth; gw=w/l;

			ot=Math.floor((w-st)/(l-1)); var i=0;

			for(i;i<l;i++){s=sa[i]; s.style.width=gw+'px'; this.timer(s)}

		},

		timer:function(s){

			s.onmouseover=function(){clearInterval(m.htimer);clearInterval(m.timer);m.timer=setInterval(function(){slideMenu.slide(s)},t)}

			s.onmouseout=function(){clearInterval(m.timer);clearInterval(m.htimer);m.htimer=setInterval(function(){slideMenu.slide(s,true)},t)}

		},

		slide:function(s,c){

			var cw=parseInt(s.style.width);

			if((cw<st && !c) || (cw>gw && c)){

				var owt=0; var i=0;

				for(i;i<l;i++){

					if(sa[i]!=s){

						var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width);

						if(ow<gw && c){oi=Math.floor((gw-ow)/sp); oi=(oi>0)?oi:1; o.style.width=(ow+oi)+'px';

						}else if(ow>ot && !c){oi=Math.floor((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)+'px'}

						if(c){owt=owt+(ow+oi)}else{owt=owt+(ow-oi)}}}

				s.style.width=(w-owt)+'px';

			}else{clearInterval(m.timer);clearInterval(m.htimer)}

		}

	};

}();

</script>

Open in new window

0
 
LVL 23

Author Comment

by:savone
ID: 34131986
Thank you much!  Can you give me a brief explanation of what you did so I can learn from it?
0
 
LVL 14

Accepted Solution

by:
ali_kayahan earned 500 total points
ID: 34132323
I just removed this line ;

if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)}

which triggers inner method of slide that causes to slide on build .
0
 
LVL 23

Author Closing Comment

by:savone
ID: 34132505
Thanks
0
 
LVL 14

Expert Comment

by:ali_kayahan
ID: 34132515
you are welcome :)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction We as admins face situation where we need to redirect websites to another. This may be required as a part of an upgrade keeping the old URL but website should be served from new URL. This document would brief you on different ways ca…
I. Introduction There's an interesting discussion going on now in an Experts Exchange Group — Attachments with no extension (http://www.experts-exchange.com/discussions/210281/Attachments-with-no-extension.html). This reminded me of questions tha…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now