Это становится довольно специфичным, но я хочу, чтобы у вас могло исчезать произвольное число детей последовательно и с задержкой синхронизации с использованием очереди jquery (хотя я открыт для других методы). Вот что я уже работаю.Затухание в произвольном количестве текстовых строк последовательно с очередью jquery
Это основной HTML блок я работаю с
<header>
<p class="copy">Thing one</p>
<p class="copy">Thing two</p>
<p class="copy">Cat in the Hat</p>
</header>
Этот ток JQuery работает, но он чувствует Hacky ко мне в том, что мне нужно знать заранее, сколько узлов ожидать.
var $screenHeader = $('header');
$screenHeader.queue(function() {
$screenHeader.find('.copy:nth-child(1)').addClass('visible');
$(this).dequeue();
})
.delay(1500)
.queue(function() {
$screenHeader.find('.copy:nth-child(2)').addClass('visible');
$(this).dequeue();
})
.delay(1500)
.queue(function() {
$screenHeader.find('.copy:nth-child(3)').addClass('visible');
$(this).dequeue();
})
.delay(1500);
Я хотел бы, если бы что-то вроде этого работал
for (var i = 1; i < $screenHeader.children().length+1; i++) {
$screenHeader.queue(function() {
$screenHeader.find('.copy:nth-child('+i+')').addClass('visible');
$screenHeader.dequeue();
}).delay(1500);
}
или еще лучше
$screenHeader.children().each(function (i) {
$screenHeader.queue(function() {
$screenHeader.find('.copy:nth-child('+i+')').addClass('visible');
$screenHeader.dequeue();
}).delay(1500);
});
или даже больше betterer (тогда я сделал, я обещаю)
$screenHeader.children().each(function() {
$screenHeader.queue(function() {
$(this).addClass('visible');
$screenHeader.dequeue();
}).delay(1500);
});
Теперь я знаю, что есть некоторые f неудобство с тем, как $ (this) передается так, что последний не является приоритетом, но было бы очень приятно получить какой-то цикл работы. Вывод их и повторение всего этого кода и привязка к html убивает меня.
Справка была бы принята с благодарностью. :)
Вы нашли ответы на любые из приведенных ниже ответов или вам нужна дополнительная помощь? – mjswensen
Эй, @mjswensen! Во-первых, спасибо за ваш тщательный ответ. Я нашел ответы полезными, но я все еще чувствую, что они оборачиваются проблемой, почему это не работает в одном из способов, как я предполагаю, или как это сделать, используя очередь jQuery. Мне также нравится чистота просто добавления класса и его перехода автоматически, а не добавления задержки. Я также использую это несколько раз на разных «заголовках» на одной странице, поэтому мне нужно иметь возможность запускать анимацию программно. – jofus