Создание задержки в итерациях цикла for - PullRequest
0 голосов
/ 06 февраля 2012

Я написал следующую функцию с надеждой добавить 1px на верхнее поле, чтобы анимировать окно, выдвигающееся со страницы.

В настоящее время он работает нормально и удаляет окно со страницы, однако я 'У меня возникли проблемы с созданием интервала задержки в каждой итерации цикла for.Я думал об использовании setTimeout(), но с этим я не могу просто сломаться;цикл for Я должен вызвать функцию,

Есть идеи?

function slideOut() {
    var obj = document.getElementById("cInstructs");
    var orig = 66;
    for(i=0; i<2000; i++) {
        orig++;
        obj.style.marginTop = orig+"px";
        }
    };

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 06 февраля 2012

Рекомендуется проверить функцию jQuery .slideDown () - http://api.jquery.com/slideDown/

0 голосов
/ 06 февраля 2012
var intId;
function slideOut() {
    clearInterval(intId);
    var count = 0;
    var obj = document.getElementById("cInstructs");
    var orig = 66;
    intId = setInterval(function(){
        orig++;
        obj.style.marginTop = orig+"px";
        if((++count == 2000)){
            clearInterval(intId);
        }
    }, 100);
}
0 голосов
/ 06 февраля 2012
var i;

function incrAndDelay(i) {
setTimeout(...);
i+=1;
return i;
}


function slideOut() {
    var obj = document.getElementById("cInstructs");
    var orig = 66;
    for(i=0; i<2000; incrAndDelay(i)) {
        orig++;
        obj.style.marginTop = orig+"px";
        }
    };

Все равно придется вызывать функцию, но не в теле цикла.

...