Jag kan få en div att sakta öppna sig med hjälp av setInterval alt setTimeout men det jag inte kan få att fungera är att scriptet kollar om någon av "divarna" i menyn är öppnad och i så fall stänga den innan nästa öppnas..Animerad dropdown meny som stänger öppnad div innan nästa öppnas
Kod;<script type="text/javascript">
var action = 0;
var timer_in = false;
var timer_out = false;
// Bestäm om det ska vikas in eller ut
/////////////////////////////////////////////////
function fold(obj,max,min)
{
checkSubmenu();
var id = document.getElementById(obj);
if(id.style.height == '')
{
id.style.height = min+'px';
}
action = (action == 0) ? 1 : 0;
if(action == 0)
{
clearTimeout(timer_out);
foldIn(id,min)
} else {
clearTimeout(timer_in);
id.style.display = 'block'; // visa diven
foldOut(id,max)
}
}
// Vik in
/////////////////////////////////////////////////
function foldIn(id,min)
{
tmp = id;
tmpMin = min;
if(parseInt(id.style.height) <= min)
{
id.style.display = 'none'; // Göm diven
clearTimeout(timer_in);
return;
}
id.style.height = parseInt(id.style.height) - 2 + 'px';
timer_in = setTimeout("foldIn(tmp,tmpMin)", 10);
}
// Vik ut
/////////////////////////////////////////////////
function foldOut(id,max)
{
tmp = id;
tmpMax = max;
if(parseInt(id.style.height) >= max)
{
clearTimeout(timer_out);
return;
}
id.style.height = parseInt(id.style.height) + 2 + 'px';
timer_out = setTimeout("foldOut(tmp,tmpMax)", 10);
}
// Kontrollera om submenu är utvikt, vik in i så fall
/////////////////////////////////////////////////
function checkSubmenu()
{
var submenu = document.getElementsByTagName('div');
for(var i=0; i<submenu.length; i++)
{
if(submenu[i].className=='submenu')
{
if(parseInt(submenu[i].style.height)>0)
{
var foldThisOne = document.getElementById(submenu[i].id);
foldIn(foldThisOne,'50','0');
}
}
}
}
</script>
Jag villalltså först göra en foldOut('div1'), sedan när man kör foldOut('div2') så vill jag att scriptet kollar om någon div är öppen, denna biten görs med checkSubmenu(). Men vad jag inte får till är att scriptet fortsätter med foldOut('div2') efter att checkSubmenu är klar.. Vad gör jag för fel?
(Detta scriptet är direkt kopierat från www.phpportalen.net och är skrivet av en snubbe som heter Nicklas så ingen credit tillfaller mig överhuvetaget.. http://www.phpportalen.net/viewtopic.php?t=70242)