есть простенькое слайдшоу, которое может само листатся, может пролистыватся кнопками. к каждому слайду сверху падает текст
var timeout;
var prevPhoto;
var numberOfPhotos;
$(document).ready(
function()
{
$('#no-script').remove();
$('#photos > div > p').hide();
prevPhoto = 0;
$('#Online').click(function() { clickButton(1); });
$('#Uprav').click(function() { clickButton(2); });
$('#Service').click(function() { clickButton(3); });
numberOfPhotos = $('#photos img').length;
rotatePics(1);
});
function clickButton (numberButton)
{
clearTimeout(timeout);
rotatePics(numberButton);
}
function rotatePics(currentPhoto)
{
//пытаюсь остановить все эффекты связанные с текстом
$('#photos > div > p').stop(true, true).hide();
currentPhoto = currentPhoto % numberOfPhotos;
prevPhoto = currentPhoto-1;
$('#photos img').eq(currentPhoto).fadeOut(
function()
{
$('#photos img').each(
function(i)
{
$(this).css('zIndex', ((numberOfPhotos - i) + currentPhoto) % numberOfPhotos);
});
$(this).show();
$('#photos > div > p').eq(currentPhoto-1).slideDown('slow');
timeout = setTimeout(function() {rotatePics(++currentPhoto);}, 4000);
});
}
фотки и текст в html оформлены так:
<div id="photos">
<img alt="Image1" src="DSC_2023.JPG" />
<div><p>Работайте<br>из дома<br>on-line!</p></div>
<img alt="Image2" src="DSC_2024.JPG" />
<div><p>Управляйте<br>всем!</p></div>
<img alt="Image3" src="DSC_2025.JPG" />
<div><p>Оказываем<br>услуги<br>населению!</p></div>
<div id="menu">
<div id="Online"><p>Текст1</p></div>
<div id="Uprav"><p>Текст2</p></div>
<div id="Service"><p>Текст3</p></div>
</div>
</div>
проблема
при быстром клацании по кнопкам, тексты начинают падать быстрее чем затираться, как следствие, двоится, троится и т.д.
понятно, что это происходит из-за параллельного запуска функции отрисовки. для этого поставил stop(true, true), но он не спасает. Такое ощущение, что на момент запуска второй функции эффект первой еще не начал выполнятся.
нет, все хуже. он полностью всю очередь анимации помнит...
заранее прошу прощения, если вопросы глупые, только начал JQuery изучать, раньше ExtJS в основном юзал