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>Title</title>
<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>Title</title>
<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>

案例

animation—延迟和持续时间的更多相关文章

  1. 第100天:CSS3中animation动画详解

    CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: 一.Animation定义动画 CSS3的Animation是由“keyframes”这个属性来 ...

  2. 动画Animation

    动画分类:Animation 单一动画 AnimationSet 复合动画 AnimationSet是Animation的实现子类,Animation是一个抽象类,他的实现子类主要有如下几种: 主要有 ...

  3. CSS3动画 transition和animation的用法和区别

    transition和animation都是CSS3新增的特性,使用时需要加内核 浏览器 内核名称 W3C   IE  -ms-  Chrome/Safari -webkit-   Firefoc - ...

  4. animation-fill-mode的一些思考

    animation-fill-mode是css3动画的一个属性,它能够控制元素在动画执行前与动画完成后的样式.一个带有延迟,并且按正常方向执行的动画(正常方向是指从0%运行到100%),执行一次的过程 ...

  5. CSS3重点总结

    CSS3重点总结(1)兄弟选择器:2种:+. ~ 1.相邻兄弟选择器(+):选择器1+选择器2 选择"选择器1"相邻的后一个兄弟"选择器2" 强调:选中的是自己 ...

  6. chrome开发工具指南(七)

    检查动画 使用 Chrome DevTools 动画检查器检查和修改动画. 通过打开动画检查器捕捉动画.检查器会自动检测动画并将它们分类为多个组. 通过慢速播放.重播或查看动画源代码来检查动画. 通过 ...

  7. CSS3动画详解(超详细)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 本文主要内容: 过渡:transition 2D 转换 trans ...

  8. html css笔记zht

    第3章 Img标签 路径问题 绝对路径:从盘符(C:\)出发的路径 (C:\Users\......) linux(绝对路径以 / 开头) 相对路径:( ./ 当前文件所在的目录)( ../上一级目录 ...

  9. CSS3动画详解(图文教程)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 本文主要内容: 过渡:transition 2D 转换 trans ...

随机推荐

  1. MariaDB 存储引擎一览(官方文档翻译)

    inline-translate.translate { } inline-translate.translate::before, inline-translate.translate::after ...

  2. 面试问题之C++语言:说一下static关键字的作用

    1.全局静态变量 在全局变量加上关键字static,全局变量就定义成一个全局静态变量,存放于静态存储区,在整个程序运行期间一直存在:未经初始化的全局静态变量会被自动初始化为0:全局静态变量在声明他的文 ...

  3. MM32F0020 UART1硬件自动波特率的使用

    目录: 1.MM32F0020简介 2.UART自动波特率校准应用场景 3.MM32F0020 UART自动波特率校准原理简介 4.MM32F0020 UART1 NVIC硬件自动波特率配置以及初始化 ...

  4. 顺利通过EMC实验(8)

  5. 前端面试题整理——手写AJAX

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. leetcode 1962. 移除石子使总数最小

    题目描述: 给你一个整数数组 piles ,数组 下标从 0 开始 ,其中 piles[i] 表示第 i 堆石子中的石子数量.另给你一个整数 k ,请你执行下述操作 恰好 k 次: 选出任一石子堆 p ...

  7. VMware workstation16 许可证

    ZF3R0-FHED2-M80TY-8QYGC-NPKYF YF390-0HF8P-M81RQ-2DXQE-M2UT6 ZF71R-DMX85-08DQY-8YMNC-PPHV8 若资金允许,请购买正 ...

  8. 数据库查询中where和having的用法

    1.类型: "baiWhere"是一个约束声明,在查询数据库du的结果返回之前对数据库中zhi的查询条件进行约束dao,即在结果返回之前起作用,且where后面不能使用" ...

  9. web.xml 配置 contextConfigLocation

    web.xml中classpath:和classpath*:  有什么区别? classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件 ...

  10. nodejs教程---基于expressJs框架,实现文件上传(upload)?

    文件上传功能在nodejs初期是一件很难实现的功能,之后出现了formidable勉强能解决这个问题,但是express框架出现之后基于这个框架开发的中间件有更好的方法来处理文件上传,这个中间件就是m ...