Javascript: Уменьшение мерцания сценариев с использованием очередей эффектов? - PullRequest
0 голосов
/ 18 мая 2011

Я просто собираю простой кусочек Javascript, используя Prototype и Scriptaculous. Это очень просто: просто потушить пользовательскую цитату, переключить ее на другую, а затем вернуть обратно. Проблема в том, что затухание Scriptaculous немного фликерно. Я предполагаю, что это потому, что исчезновение, переключение, постепенное изменение происходят так быстро, что браузер испытывает затруднения, не отставая.

Сначала я думал, что пауза сработает, но теперь я прочитал, что вы можете использовать Очереди эффектов , чтобы решить эту проблему, но на всю жизнь я не могу заставить ее работать.

Вот оригинальный проблемный код без каких-либо очередей эффектов:

function fadeOut() {
new Effect.Opacity('quoteContainer', {from: 1.0, to: 0.0 });
}

function fadeIn() {
new Effect.Opacity('quoteContainer', {from: 0.0, to: 1.0 });
}

function changeQuote(i) {
    fadeOut();
    $('quote').innerHTML = quoteArray[i];
    $('name').innerHTML = nameArray[i];
    fadeIn();
}

changeQuote(0); // 1stQuo

window.onload = function () {
    var i = 1;
    var pause = setInterval(function () {
        changeQuote(i);
        i++;
        if (i>11) { i=0; } // Go to first quote in array
    }, 7000);
}

Если, конечно, у кого-то нет лучшего представления о том, как уменьшить мерцание?

1 Ответ

0 голосов
/ 18 мая 2011
setTimeout(function () {
   fadeIn();
}, 500); 

время в мс, то есть 500 мс

...