我试图创建一个简单的动画,其中每个字母将逐个缩放。在每个div中添加一个类时,是否可能有1秒的延迟?以下是我目前所做的工作: JSFiddle
HTML
<div class="animation">
<div>a</div>
<div>n</div>
<div>i</div>
<div>m</div>
<div>a</div>
<div>t</div>
<div>e</div>
</div>
CSS
.animate_letters{
float:left;
text-transform:uppercase;
font-size:80px;
display:inline;
margin-right:5px;
animation:fancytext 1s cubic-bezier(0.3, 2, 0.35, 1.45) 0s normal none 1;
}
@keyframes fancytext{
from {
transform: scale(0) translateX(-40%); opacity:0;
}
to {
transform: scale(1) translateX(0%); opacity:1;
}
}
JAVASCRIPT
$(document).ready(function(){
$.each( $('.animation'), function(i, animation){
$('div', animation).each(function(){
$(this).addClass('animate_letters')
})
})
})
答案 0 :(得分:2)
您可以使用setTimeout()
:
$(document).ready(function(){
$.each( $('.animation'), function(i, animation){
$('div', animation).each(function(ii){
var data = $(this);
setTimeout( function () {
$(data).addClass('animate_letters')
}, ii * 1000);
})})});
<强> Demo 强>
更新:您也不需要两个.each()
。您可以使用选择器.each()
将其缩小到一个$('.animation div')
:
$(document).ready(function(){
$('.animation div').each(function(ii){
var data = $(this);
setTimeout( function () {
$(data).addClass('animate_letters')
}, ii * 1000);
})});
<强> Simplified Demo 强>
答案 1 :(得分:1)
扩展Milind Anantwar的答案,你需要使用setTimeout
,但是给每个字母一个不同的超时:
$(document).ready(function(){
$('.animation').each(function(i, animation){
$('div', animation).each(function(j, div){
setTimeout(function() {
$(div).addClass('animate_letters');
}, 1000*j);
});
});
});