0

我做了一些代码淡出图像,更改src属性,然后fadeIn()是新图像。这在 Chrome 中可以正常工作,但在 FireFox 中不行。

这是jQuery代码:

var myInterval=setInterval(function(){myChanging()},5000);

function myChanging () {
    var newUrl = urlBaseBackground + currentIndex + ".jpg";
    var image = jQuery('#bckimg');
    image.fadeOut(1000, function () {
                    image.attr('src', newUrl);
                    image.fadeIn(1000);
                });
    currentIndex ++;
    if (currentIndex > totalCountBackgroundImages-1)
        currentIndex = 0;
}

在身体里 :

 <img id="bckimg" 
      style="position:fixed;width:100%;height:100%;left:0px;top:0px;z-index:-1;" 
      src="/back/0.jpg" />

FF 在显示时改变图像,而不是在淡入和淡出之间。我在部件之前尝试了 setTimeout ,'.attr("src"...'但它也没有工作。

任何线索任何人?

编辑:忘了提到我在启动淡入淡出之前使用另一个功能加载所有图像。

4

1 回答 1

2

我认为你应该采取连锁行动:

image.fadeOut(1000).attr('src', newUrl).fadeIn(1000);

或者试试promise()函数:

 image.fadeOut(1000);
 image.promise().done(function()
 {
    $(this).attr('src', newUrl).fadeIn(1000);
 });
于 2013-01-30T11:27:11.963 回答