It appears you have not yet registered with DEVPPL. To register please click here... (it's fast, easy and free!)

Forum

Log In Sponsors
Board index Programming JavaScript Forum

Help with Accordian

Help with Accordian

Postby dflynn on Sat May 31, 2008 6:18 pm

I'm trying to get this script to keep all blocks closed when the page is loaded so no content is available until clicked.

Any ideas?

I tried playing with a few variables until i realized that I really don't know what I'm doing. :P

Code: Select all
var slider=function(){
   var array=[];
   var speed=10;
   var timer=10;
   return{
      init:function(t,c){
         var s,ds,l,i;
         s=document.getElementById(t); ds=s.getElementsByTagName('div'); l=ds.length; i=0;
         for(i=0;i<l;i++){
            var d,did; d=ds[i]; did=d.id;
            if(did.indexOf("header")!=-1){
               d.onclick=new Function("slider.process(this)");
            }else if(did.indexOf("content")!=-1){
               array.push(did.replace('-content',''));
               d.maxh=d.offsetHeight;
               if(c==1&&i==1){
                  d.style.display='block';
               }else{
                  d.style.height='0px';
                  d.style.display='none';
               }
            }
         }
      },
      process:function(d){
         var cl,i; cl=array.length; i=0;
         for(i;i<cl;i++){
            var s,h,c,cd;
            s=array[i]; h=document.getElementById(s+'-header');
            c=s+'-content'; cd=document.getElementById(c);
            clearInterval(cd.timer);
            if(h==d&&cd.style.display=='none'){
               cd.style.display='block';
               this.islide(c,1);
            }else if(cd.style.display=='block'){this.islide(c,-1)}
         }
      },
      islide:function(i,d){
         var c,m; c=document.getElementById(i); m=c.maxh; c.direction=d;
         c.timer=setInterval("slider.slide('"+i +"')",timer);
      },
      slide:function(i){
         var c,m,h,dist; c=document.getElementById(i); m=c.maxh; h=c.offsetHeight;
         dist=(c.direction==1)?Math.round((m-h)/speed):Math.round(h/speed);
         if(dist<=1){dist=1}
         c.style.height=h+(dist*c.direction)+'px';
         c.style.opacity=h/c.maxh;
         c.style.filter='alpha(opacity='+(h*100/c.maxh)+')';
         if(h<2&&c.direction!=1){
            c.style.display='none';
            clearInterval(c.timer);
         }else if(h>(m-2)&&c.direction==1){clearInterval(c.timer)}
      }
   };
}();
User avatar
dflynn
500+ Club
 
Posts: 860
Joined: Wed Oct 03, 2007 9:06 pm
Location: Guelph, Canada

Postby rangana on Mon Jun 02, 2008 2:39 am

This would help us solve your problem:
1.) A link to your page.
2.) A link to where you got this script.
User avatar
rangana
500+ Club
 
Posts: 935
Joined: Wed Feb 27, 2008 5:14 am
Location: Cebu City Philippines

Postby dflynn on Mon Jun 02, 2008 2:42 am

Sorry, i should have gotten back to this thread sooner.

I wasn't in the javascript that affected it but instead a variable found in the HTML half of the accordian.

I've fixed it now anyway.
Thanx for the response though
User avatar
dflynn
500+ Club
 
Posts: 860
Joined: Wed Oct 03, 2007 9:06 pm
Location: Guelph, Canada

Postby rangana on Mon Jun 02, 2008 2:49 am

No problem. ;)
User avatar
rangana
500+ Club
 
Posts: 935
Joined: Wed Feb 27, 2008 5:14 am
Location: Cebu City Philippines


Who is online

Users browsing this forum: No registered users and 1 guest