2015-11-06 43 views
0

下面的代码foreach循环动画延迟+ 1S

@keyframes example { 
    100% {background-color: grey;} 
} 
<?php 
$code = 1432; 
$arr1 = str_split($code); 
$css = ''; 
foreach ($arr1 as $value) { 
    $css .= '#btn' . $value . ' {'; 
    $css .= 'animation-name:example;'; 
    $css .= 'animation-duration:1s;'; 
    $css .= 'animation-delay:0.5s;'; 
    $css .= '}'; 
} 

echo $css; // output variable 
?> 

创建这样的输出:

#btn1 {animation-name:example;animation-duration:1s;animation-delay:0.5s;} 
#btn4 {animation-name:example;animation-duration:1s;animation-delay:0.5s;} 
#btn3 {animation-name:example;animation-duration:1s;animation-delay:0.5s;} 
#btn2 {animation-name:example;animation-duration:1s;animation-delay:0.5s;} 

我的问题是,这四个动画开始在同一时间。我应该在我的foreach循环中添加什么,每个动画延迟1秒。在这个例子中,#btn1在一秒后变成动画#btn4等等?我知道我需要改变动画延迟每次加1秒,但我不知道如何。 :/

回答

2
foreach ($arr1 as $index => $value) { 
    $css .= '#btn' . $value . ' {'; 
    $css .= 'animation-name:example;'; 
    $css .= 'animation-duration:1s;'; 
    $css .= 'animation-delay:' . $index . 's;'; 
    $css .= '}'; 
} 
+0

延时0秒对我来说毫无意义..除此之外它还是不错的 – Andrew

+0

谢谢!这就是我正在寻找的东西,我接受你的答案在8分钟内:) – klamertd

+1

@Andrew延迟为0将表明没有延迟,即如果用户想要第一个动画立即开始。他们可以简单地将它写成'($ index + 1)',让所有的动画从1秒开始,然后是2秒,然后是3秒。 – Quantastical