我有5个文本节点,如
<h2 class="textillate"> test </h2>
<h2 class="textillate"> test </h2>
<h2 class="textillate"> test </h2>
<h2 class="textillate"> test </h2>
<h2 class="textillate"> test </h2>
我希望在完成上一个节点时逐个传输这些节点。
我试过这个,但没有成功:(
$(document).ready(function() {
nodes = $('.textillate');
nodes.eq(0).textillate()
.eq(1).textillate();
});
答案 0 :(得分:3)
您可以使用功能参数,即initialDelay
。例如,这就是诀窍:
nodes = $('.textilate');
nodes.each(function(index, element){
$(element).textillate({initialDelay: index*1000});
}
查看更多usage options以更精细地调整各种持续时间。
<强>更新强>
这是一个更新的演示,取决于字符串的长度:http://jsfiddle.net/LUq39/13/它实际上累积了延迟时间:
var nodes = $('.textilate');
var delay = 0
nodes.each(function(){
delay += $(this).prev()? $(this).prev().text().length*50:0;
$(this).textillate(
{initialDelay: delay, in:{delay:50}, out:{delay:50}}
);
})
答案 1 :(得分:0)
jQuery each怎么样?
$(document).ready(function() {
$('.textillate').each(function(index, element) {
$(element).textillate();
});
});
如果您希望函数一个接一个地执行,为什么不只是for循环:
var items = $('.textillate')
for(var i = 0; i < items.size(); i++) {
$(items[i]).textillate();
}
答案 2 :(得分:0)
据我所知,您希望等待一个textilate结束以拨打下一个。 我刚读过Textillate API,它没有回调/保证选项。
由于textillate不提供回调机制,因此无法准确知道动画何时结束。除非您知道每个动画的持续时间,否则您可以等待一个动画结束以调用下一个动画。
如果您想同时将Textillate应用于每个元素,只需使用:
$('.textillate').textillate();