0

次のコードを最適化する必要があります。FORを使用してみましたが、画像が一度に表示されます。

次のソリューションを使用しましたが、これは最適化されていません。

$(document).ready(function(){



function fadeInOut () {

     var $element1 = $('a#imagem01');
     var $element2 = $('a#imagem02');
     var $element3 = $('a#imagem03');
     var $element4 = $('a#imagem04');
     var $element5 = $('a#imagem05');
     var $element6 = $('a#imagem06');



     $element1.fadeIn(2000, function () {
     $element1.fadeOut(2000, function () {

     $element2.fadeIn(2000, function () {
     $element2.fadeOut(2000, function () {


     $element3.fadeIn(2000, function () {
     $element3.fadeOut(2000, function () {


     $element4.fadeIn(2000, function () {
     $element4.fadeOut(2000, function () {

     $element5.fadeIn(2000, function () {
     $element5.fadeOut(2000, function () {

     $element6.fadeIn(2000, function () {
     $element6.fadeOut(2000, function () {

     fadeInOut();  

     });});});});});});});});});});});});

     }

     fadeInOut();

});

ヘルプが必要です!

4

2 に答える 2

1
function fadeInOut() {
    var elements = ['a#imagem01', 'a#imagem02', 'a#imagem03', 'a#imagem04', 'a#imagem05', 'a#imagem06'];
    var index = 0;
    var loopForever = false;

    (function() {
        var selfFunction = arguments.callee;
        if((loopForever) && (index > elements.length-1)) index = 0;

        if(index <= elements.length-1) {
            $(elements[index++]).fadeIn(2000, function() {
                $(this).fadeOut(2000, selfFunction);
            });
        }
    })();
}

テストされていませんが、これらの線に沿った何かがうまくいくはずです。これは基本的に、すべての要素を反復処理するコールバックループです。

于 2013-02-25T19:40:54.803 に答える
0
$(document).ready(function() {
    $("div").hide();
    var obj = [$("#o1"), $("#o2"), $("#o3"), $("#o4"), $("#o5")];
    var i = 0;
    var interval = setInterval(function() {
            obj[i].fadeIn(2000);
            obj[i].fadeOut(2000);
            i++;
            if (i > 4) {
                clearInterval(interval)
            }
        },
        4000
    );
});

私は上記の解決策がより良いと確信していますが、これもうまくいくでしょう..

于 2013-02-25T19:56:23.907 に答える