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;
}
}
這是它。謝謝!爲什麼你不能在完整的功能中使用paranthesis?這是否搞亂了語法?如果我需要在那裏使用一個變量呢? – RyanJMcGowan 2012-03-13 01:18:39
帶圓括號的是一個函數調用 - 調用'changeImage'並且只有它的返回值被傳遞給動畫函數。沒有圓括號,它只是函數本身 - 你把它交給animate(),動畫被執行,當它完成時,animate()調用你傳遞的函數。 – Niko 2012-03-13 01:27:06
如果您需要將參數傳遞給changeImage,請圍繞它包裝另一個函數:'animate(...,「linar」,function(){changeImage(param1,param2);});' – Niko 2012-03-13 01:27:35