animation—延迟和持续时间
animation: moveToRight .75s 6s linear infinite ;
animation: moveToRight -.75s 1.5s linear infinite;
当动画有两个参数时,
若是两个都是正整数,第一个是持续的时间,第二个是动画延迟时间;
若第一个是负数,则取该时间的绝对值视为延迟时间,第二个为持续时间。
虽然延迟动画为负数时可以取其绝对值为延迟时间,但负数有它存在的用意。如下动画,一刷新就会有一轮明显的白圈,那是在动画没有开始时元素的正常状态,在设置延迟时间为负数时就不会出现这样效果。
transform-origin: 0 25px;/* 这个属性决定环绕园大小 */
以上结论来自于研究该案例:https://github.com/huruji/loading 所得,感谢大佬无私分享。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<style>
div {
position: relative;
padding: 80px;
background-color: #ffaa00;
}
span {
position: absolute;
width: 50px;
height: 50px;
border-radius: 50%;
background: transparent;
border: 2px solid #fff;
}
/* */
span:nth-child(1) {
animation: loader6 .8s cubic-bezier(0.21, 0.53, 0.56, 0.8) .24s infinite;
/*animation: loader6 .8s cubic-bezier(0.21, 0.53, 0.56, 0.8) -.24s infinite;*/
}
span:nth-child(2) {
animation: loader6 .8s cubic-bezier(0.21, 0.53, 0.56, 0.8) .12s infinite;
/*animation: loader6 .8s cubic-bezier(0.21, 0.53, 0.56, 0.8) -.12s infinite;*/
}
span:nth-child(3) {
animation: loader6 .8s cubic-bezier(0.21, 0.53, 0.56, 0.8) 0s infinite;
}
@keyframes loader6 {
0% {-webkit-transform: scale(0.1);opacity: 0.1;}
20% {-webkit-transform: scale(0.5);opacity: 1;}
100% {-webkit-transform: scale(1);opacity: 0.5;}
}
style>
head>
<body>
<div>
<span>span>
<span>span>
<span>span>
div>
body>
html>
动画代码
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<style>
body {padding: 100px}
.loader {
width: 150px;
font-size: 0;
text-align: center;
border: 1px solid #ffaa00;
}
span {
display: inline-block;
width: 15px;
height: 15px;
background-color: #EB4E01;
border-radius: 50%;
}
span:first-child {
animation: moveToLeft infinite 1.5s linear;
}
span:last-child {
/*
animation: moveToRight infinite .75s 6s linear;
当动画有两个参数时,若是两个都是正整数,第一个是持续的时间,第二个是动画延迟时间;
若第一个是负数,则取该时间的绝对值视为延迟时间,第二个为持续时间
*/
/*
也可:为什么是 .75s 呢,因为当动画在 50% 时其实可以看成一个来回结束,这个来回结束在总持续时间占一半。
animation: moveToRight 1.5s .75s linear infinite;
*/
animation: moveToRight -.75s linear 1.5s infinite;
}
@keyframes moveToLeft {
0% {transform: translateX(0)}
25% {transform: translateX(-30px)}
50% {transform: translateX(0)}
100% {transform: translateX(0)}
}
@keyframes moveToRight {
0% {transform: translateX(0)}
25% {transform: translateX(30px)}
50% {transform: translateX(0)}
100% {transform: translateX(0)}
}
style>
head>
<body>
<div class="loader">
<span>span>
<span>span>
<span>span>
<span>span>
<span>span>
div>
body>
html>
案例