2012-03-13 71 views
0

我有兩個圖像堆疊。使用setInterval(),最上面的一個消失,暴露第​​二個。然後頂部圖像切換到底部的src而不可見,並且再次變得不透明。第二個圖像變爲下一個圖像,並等待setInterval()淡出頂部圖像,然後重新執行。用setInterval調用的jQuery在第一個時間間隔不是動畫

這一切都很好,除了第一次;沒有褪色。我沒有看到什麼?

這發生在所有的Firefox和Chrome上,我假設所有其他人。

HTML

<script type="text/javascript"> 
    setInterval('swapImage()', 5000); 
    var galleryCount = 3; 
    </script> 

    ... 

    <img id="image" src="images/gallery/01.jpg" /> 
    <img id="imagenext" src="images/gallery/02.jpg" /> 

的Javascript

function swapImage(imageToFadeID) 
{ 
    $("#image").animate 
    (
     { "opacity": "0" }, 
     "slow", 
     "linear", 
     changeImage() 
    ); 
}; 

var i = 1; 

function changeImage() 
//counter +1 
{ 
i = i + 1; 
//add "0" to image number "j" if less than 10. 
if (i < 10) 
    { 
    var j = "0" + i; 
    } 
else 
    { 
    j = i; 
    } 
//change top image to match bottom 
var topImage = document.getElementById("imagenext").src; 
document.getElementById("image").src = topImage; 
//make top image reappear 
document.getElementById("image").style.opacity = '1'; 
//change out bottom image to next 
var btmImage = "images/gallery/" + j + ".jpg"; 
document.getElementById("imagenext").src = btmImage; 
//reset counter if at end 
if (i > galleryCount - 1) 
    { 
    i = 0; 
    } 

} 

回答

1

我看起來像你調用changeImage,而不是把它當作一個回調animate的:

錯誤:

function swapImage(imageToFadeID) 
{ 
    $("#image").animate 
    (
     { "opacity": "0" }, 
     "slow", 
     "linear", 
     changeImage() // <--- !!! Remove the parentheses from this line! 
    ); 
}; 

右:

function swapImage(imageToFadeID) 
{ 
    $("#image").animate 
    (
     { "opacity": "0" }, 
     "slow", 
     "linear", 
     changeImage 
    ); 
}; 
+0

這是它。謝謝!爲什麼你不能在完整的功能中使用paranthesis?這是否搞亂了語法?如果我需要在那裏使用一個變量呢? – RyanJMcGowan 2012-03-13 01:18:39

+0

帶圓括號的是一個函數調用 - 調用'changeImage'並且只有它的返回值被傳遞給動畫函數。沒有圓括號,它只是函數本身 - 你把它交給animate(),動畫被執行,當它完成時,animate()調用你傳遞的函數。 – Niko 2012-03-13 01:27:06

+0

如果您需要將參數傳遞給changeImage,請圍繞它包裝另一個函數:'animate(...,「linar」,function(){changeImage(param1,param2);});' – Niko 2012-03-13 01:27:35

相關問題