задержка или setInterval в mootools - PullRequest
0 голосов
/ 18 января 2012

Доброе утро,

У меня проблема с mootools, и я делаю альфа-эффект от 0 до 100, но я хотел бы сделать задержку перед загрузкой следующего эффекта.

код выглядит следующим образом:

<script type="text/javascript">
var miEfecto1 = new Fx.Style('texto42' ,'opacity',{duration: 9000,onComplete: function(){setInterval(miEfecto2.start(1,0) , 15000 );}});
var miEfecto2 = new Fx.Style('texto14' ,'opacity',{duration: 9000,onComplete: function(){setInterval(miEfecto3.start(1,0) , 15000 );}});
...etc...
var miEfecto59 = new Fx.Style('texto45' ,'opacity',{duration: 9000,onComplete: function(){setInterval(miEfecto60.start(1,0) , 15000 );}});
var miEfecto60 = new Fx.Style('texto39' ,'opacity',{duration: 9000,onComplete: function(){setInterval(miEfecto61.start(1,0) , 15000 );}});
window.addEvent('domready',function() {
miEfecto1.start(1,0);}); 
</script>

Большое спасибо за вашу помощь!

Ответы [ 3 ]

1 голос
/ 18 января 2012

setInterval устанавливает интервал для некоторой функции, которую вы передаете в качестве первого параметра, где setTimeout просто задерживает выполнение . Используйте последний , чтобы избежать многократного выполнения.

Также в своем коде вы немедленно выполняете метод start() (например, miEfecto2.start(1,0)), потому что вы не передаете его - вы передаете его результат. Чтобы это исправить, вы можете заключить его в анонимную функцию (но не вызывать ее).

Пример кода может выглядеть следующим образом (обратите внимание, setInterval заменяется на setTimeout и что я заключил вызов функции в анонимную функцию):

var miEfecto1 = new Fx.Style('texto42', 'opacity', {
    duration: 9000,
    onComplete: function(){
        setTimeout(function(){
            miEfecto2.start(1,0);
        }, 15000);
    }
});

Сделайте аналогичные изменения в остальной части вашего кода.

0 голосов
/ 27 января 2012

РЕШЕНИЕ:

var miEfecto_i1 = new Fx.Style('texto19', 'opacity', {
    duration: 1000,
    onComplete: function(){
        setTimeout(function(){
            miEfecto_o1.start(1,0);
        }, 10000);
    }
});

var miEfecto_o1 = new Fx.Style('texto19', 'opacity', {
    duration: 1000,
    onComplete: function(){
        miEfecto_i2.start(0,1);
    }
});

СПАСИБО !!

0 голосов
/ 18 января 2012

что вам нужно сделать, это связать эффекты и установить задержку на то, что вам нужно ..

проверьте этот пример: http://demos111.mootools.net/Chain

или проверьте документ: http://mootools.net/docs/core/Class/Class.Extras

Надеюсь, это поможет

...