如何延迟应该在特定时间后开始的css动画

时间:2014-10-18 15:04:37

标签: animation

我在我的css动画中使用steps()。现在我想在特定时间后启动css动画。以下是一个例子。

   @-webkit-keyframes typing {
    from { width: 0 }
    to { width:455px; }
}

@-moz-keyframes typing {
    from { width: 0 }
    to { width:16.3em }
}

@-webkit-keyframes blink-caret {
    from, to { border-color: transparent }
    50% { border-color: black }
}
@-moz-keyframes blink-caret {
    from, to { border-color: transparent }
    50% { border-color: black }
}
.typing_animation h3 {
position: absolute;
font-size: 36px;
width:455px;
left: 0;
top:110px;
font-style: italic;
display: inline-block;
margin-left: -48px;
letter-spacing: 4px;
white-space: nowrap;
overflow: hidden;
    border-right: 1px solid #000;
     -webkit-animation: typing 10s steps(25, end), blink-caret 1s step-end infinite;
     -moz-animation: typing 10s steps(25, end), blink-caret 1s step-end infinite;
}

上面的一个导致很酷的打字动画。然而,它马上就开始了。我想保持打字并在延迟5秒后启动它。

由于

PS:如果有用的话,Fiddle

3 个答案:

答案 0 :(得分:1)

也许已经很晚了,但这就是你需要的:

  1. 从" 455px"更改元素宽度到" 0" ;
  2. 然后添加"动画填充模式:转发"进入你的" .typing_animation h3" class,所以这个css规则强制动画可以改变宽度;
  3. 像这样添加你想要的延迟:"动画延迟:3s"。
  4. 注意:不要忘记前缀,如果在元素上使用多个动画,最好使用速记动画属性。 see tutorials

    这是一个例子:jsfiddle

    /* typing animation */
    @keyframes typing {from {width: 0} to {width:19em}}
    @-webkit-keyframes typing {from {width: 0} to {width:19em}}
    @-moz-keyframes typing {from {width: 0} to {width:19em}}
    
    /* blinking animation */
    @keyframes blink-caret {from, to {border-color: transparent} 50% {border-color: #000000}}
    @-webkit-keyframes blink-caret {from, to {border-color: transparent} 50% {border-color: #000000}}
    @-moz-keyframes blink-caret {from, to {border-color: transparent} 50% {border-color: #000000}}
    
    .my-animation {
    width: 0;
    overflow: hidden;
    white-space:nowrap;
    border-right: 0.1em solid #000000;
    animation: typing 6s steps(30, end) 4s forwards, blink-caret 1s step-end 4s infinite;
    -webkit-animation: typing 6s steps(30, end) 4s forwards, blink-caret 1s step-end 4s infinite;
    -moz-animation: typing 6s steps(30, end) 4s forwards, blink-caret 1s step-end 4s infinite;
    }
    

答案 1 :(得分:0)

尝试animation-delay属性:

-webkit-animation-delay: 5s; 
animation-delay: 5s;

注意:将其添加到h3规则的末尾

答案 2 :(得分:0)

您可以使用setTimeout函数并将类添加到特定元素



setTimeout(function(){ 
$('p').addClass('text-show')  
}, 3000);

p
{
  font-size:60px;
}

.text-show
{
	animation: textshow 2s ease-out forwards;
}
@keyframes textshow {
	0% {
		transform: scale3d(0.6, 0.6, 0.6);
		opacity: 0;
	}
	100% {
		transform: scale3d(1, 1, 1);
		opacity: 1;
	}
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>We Design.</p>
&#13;
&#13;
&#13;

感谢, Jomin George paul