2012-10-08 13 views
0

我試圖創建一個滑動面板,將隱藏自己與一個簡單的js動畫。 這裏的發展中的鏈接:http://carportal.webpronto.it 只需點擊「隱藏面板」看到左側的搜索標籤。循環將不會停止在給定的值

問題是以下幾點: 我試圖給出一個值,讓面板在到達剩下的位置時停下來:-25% 但是面板繼續他的傻瓜奔跑與無限。 這裏我使用的腳本:

<script type="text/javascript"> 
    var scrollSpeed = 50; 
    var step = 1; 
    var current = 0; 
    var endposition = 25; 
    function closeBAR(){ 
     current -= step; 
     if (current == endposition){ 


      stop; 

     } 



     $('#colleft').css("left",current+"%"); 



    var init = setInterval("closeBAR()", scrollSpeed); 

} 
</script> 

我的腳本有什麼問題?

+1

'stop'不是JavaScript關鍵字。有*是一個['window.stop'](https://developer.mozilla.org/en-US/docs/DOM/window.stop),這是標識符解決的 - 以及爲什麼沒有錯誤拋出 - 但它是一個函數,而你不稱之爲函數。 – josh3736

+1

請注意,絕對不要將字符串傳遞給'setInterval',它會使用'eval'!傳遞函數。 'var init = setInterval(closeBAR,scrollSpeed);' –

+0

1)您正在創建多個間隔。不好。 2)您正在使用jQuery,那麼爲什麼不使用'animate'? – Shmiddty

回答

1

更換你行

stop; 

clearInterval(init); 

另外的終端位置應該是否定的:

var endposition = -25; 

考慮使用像Slide jQuery UI的效果相反,它會使你的代碼更具可讀性。

+0

我試過這個解決方案,但似乎不工作。 –

+0

任何其他提示? –

+0

右括號}應該在init之前。看到這個[fiddle](http://jsfiddle.net/2kR3P/1/) –

1

你正在遞減當前值,所以,因爲它從0開始,它會變成負值。 -25與25不一樣,所以你的'停止'測試失敗

+0

我試着用-25,沒有成功。 –

0

讓你的代碼有一個「幹」的外觀至少有以下問題:你的全局變量current將永遠達不到值endposition因爲它在開始時初始值爲-1:current -= step == -1(0 - 1)。