#javascript #prototypejs #scriptaculous
#javascript #prototypejs #скриптовый
Вопрос:
Я просто собираю простую часть 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:
setTimeout(function () {
fadeIn();
}, 500);
время в мс, то есть 500 мс
Комментарии:
1. Боюсь, это просто все испортило : (
2. Обнаружил вещь, называемую очередями эффектов. Очевидно, что Scriptaculous запускает все эффекты одновременно, и вам нужно сказать ему подождать.