setInterval函数试图在切换到另一个窗口时赶上

时间:2014-01-16 23:30:37

标签: javascript

我有一个循环显示2张图片的代码。

淡出第一个,更改图像,然后在秒图像中淡入淡出。 我正在用setInterval函数重复这个过程。

当我观看周期时,它看起来很好。 当我切换到另一个标签并在10或20秒后返回时,这就像试图快速赶上我错过的所有衰落和变化......(疯了,简而言之)

这里是setInterval函数:

setInterval(function(){
fadeout(PointerToImage, function() {
ChangeImage(function() {fadein(PointerToImage);   } )

});

},5000);

如果需要: 淡出功能

function fadeout(element,complete) { 
    var op = 1;  // initial opacity
    var timer = setInterval(function () {  //call the function every 50 milliseconds
        if (op <= 0.1){   // stop the function when the op is lower then x and then make in invisible.
                clearInterval(timer); // clear the timer ....
                     if ( typeof complete === 'function' ) // run  it only if complete is a function .....
            {
                complete();
            }

                return true;
        }
        element.style.opacity = op;  // for newer browsers
        op -= op * 0.01;  // reduce 10% each time
    }, 0.05);  // run every 50 seconds
    }

fadein功能:

function fadein (element,complete) {   
    var op = 0.1  // initial opacity
    var timer = setInterval(function () {  //call the function every x milliseconds 
        if (op >= 0.99){   // stop the function when the op is higher then x ....
        element.style.opacity  = 1;
        clearInterval(timer); // clear the timer ....
                    if ( typeof complete === 'function' ) // run  it only if complete is a function .....
            {
                complete();
            }

        return true;


        }
        element.style.opacity = op;  // for newer browsers
        op += 0.01;  // reduce 10%
    }, 30);  // run every 50 seconds

    }

ChangeImage功能:

 function ChangeImage (complete)  {

liran0.src=imagesarrays[indexid1];
 indexid1=indexid1 +1;


if(indexid1 >= imagesarrays.length){
        indexid1 = 0;
}

0 个答案:

没有答案