У меня есть страница, где я зацикливаюсь на наборе элементов списка, используя jquery fadeout () и fadein ().
Все работает нормально, за исключением того, что я бы хотел сделать так:
- пользователь может щелкнуть по отдельному элементу, который представляет li в повороте.
- Когда они щелкают по элементу, текущий цикл анимации останавливается,
- загружается соответствующий контент li
- анимация возобновляется.
Я считаю, что мне нужно сделать это с очередями jquery, но мне было интересно, есть ли более простое решение, которое я пропускаю.
Вот мой код:
$(document).ready(function () {
var j = 0;
var fadetime = 700;
var delay = 3000; //millisecond delay between cycles
function cycleThru() {
var jmax = $("ul#rotator li").length - 1;
$("ul#rotator_pager li:eq(" + j + ")").css("background-color", "#660000");
$("ul#rotator li:eq(" + j + ")").fadeIn(fadetime).delay(delay);
$("ul#rotator li:eq(" + j + ")").fadeOut(fadetime, function () {
$("ul#rotator_pager li:eq(" + j + ")").css("background-color", "");
(j == jmax) ? j = 0 : j++;
cycleThru();
});
};
//Setup the clickers on the pager boxes.
$("ul#rotator_pager li").click(function () {
//Switch to this list element and resume animation cycle.
});
cycleThru();
});
Соответствующий HTML -
<ul id="rotator">
<li id="first">
<div><!--HTML Goes HERE--></div>
</li>
<li>
<div><!--HTML Goes HERE--></div>
</li>
<li>
<div><!--HTML Goes HERE--></div>
</li>
</ul>
<ul id="rotator_pager">
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>