2011-08-30 21 views
-1

我正在嘗試使菜單的元素顯示並消失,但是i停在某個級別,爲什麼?javascript菜單

<script language="javascript"> 
tre = [1, 0, 0, 0, 0]; 
function tree(e) { 
    elm = document.getElementsByClassName("sub")[e]; 
    if (e == 1) { 
     n = 73; 
    } 
    else if (e == 3 || e == 4) { 
     n = 168; 
    } 
    else { 
     n = 144; 
    } 
    ex = e; 
    if (tre[ex] == 0) { 
     i = 0; 
     tmp1 = setInterval(function() { 
      if (i <= 100 && i >= 0) { 
       elm.style.height = (i/100) * n + "px"; 
       document.getElementById('wait').innerHTML += i + ' '; 
       i++; 
      } else { 
       clearInterval(tmp1); 
       tre[ex] = 1; 
      } 
     }, 2); 
    } 
    else { 
     j = 100; 
     tmp2 = setInterval(function() { 
      if (j >= 0) { 
       elm.style.height = (j/100) * n + "px"; 
       j--; 
      } else { 
        clearInterval(tmp2); 
       tre[ex] = 0; 
      } 
    }, 2); 
    } 
} 
</script> 
<style> 
div {overflow: hidden;} 
</style> 
<span onClick="tree(0);">Toogle 0</span><br /> 
<div class="sub">test 0<br />test 0<br />test 0<br />test 0<br />test 0<br />test 0</div> 
<span onClick="tree(1);">Toogle 1</span><br /> 
<div class="sub">test 1<br />test 1<br />test 1</div> 
<span onClick="tree(2);">Toogle 2</span><br /> 
<div class="sub">test 2<br />test 2<br />test 2<br />test 2<br />test 2<br />test 2</div> 
<span onClick="tree(3);">Toogle 3</span><br /> 
<div class="sub">test 3<br />test 3<br />test 3<br />test 3<br />test 3<br />test 3<br />test 3</div> 
<span onClick="tree(4);">Toogle 4</span><br /> 
<div class="sub">test 4<br />test 4<br />test 4<br />test 4<br />test 4<br />test 4<br />test 4</div> 
+0

你是什麼意思「我停在某個級別」? –

+0

這裏的小提琴,對於任何想要它的人來說...... http://jsfiddle.net/DHuU6/ –

+0

「'我停在一定的水平上」這究竟意味着什麼? –

回答

0

根據你的邏輯的代碼才起作用,如果聲明TRE陣列TRE = [1,1,1,1,1]; 對於菜單,這種滑動和滑動效果可以很容易地使用Jqueries實現,而無需執行在代碼中完成的這些類型的靜態計算。