文章目录

  • Animation of CSS3
    • keyframes
    • animation-name、animation-duration
    • animation-timing-function、animation-delay
    • animation-iteration-count
    • animation-direction
      • normal
      • reverse
      • alternate
      • alternate-reverse
    • animation-play-state
    • animation-fill-mode
      • none
      • forwards
      • backwards
      • both
    • 应用

Animation of CSS3

animation是实现CSS3动画最重要的一个属性,虽然说transition也能实现这样的效果,但是transition实现的只是说从A状态变换到B状态的效果,它想在变换到C状态是办不到的,但是animation可以,animation可以一直变下去,CSS3的动画效果主要还是围绕着animation展开的。

但是CSS3的动画效果也没那么强大,只能实现一些简单的动画。

在开始之前先写一个方块,通过让这个方块运动来研究animation是怎么运用的。

keyframes

要用animation实现状态的改变的话,就必须把这些状态记录下来,放到一个容器里面,然后按照顺序来执行,这个容器就是@keyframes也就是关键帧容器:

有几个状态就定义几个关键帧,怎么定义关键帧呢,要用百分数来做:

@keyframes run {0%{}25%{}50%{}75%{}100%{}
}

其实0%也可以写成from,100%也可以写成to,其他的都没有特殊写法。

兼容性问题的话,过渡版本的浏览器是要加上-webkit-的:

animation-name、animation-duration

接下来用这个属性让方块转圈:

@keyframes{0%{left:0;top:0;}25%{left:100px;top:0;}50%{left:100px;top:100px;}75%{left:0;top:100px;}100%{left:0;top:0;}
}
div{position:absolute;width:100px;height:100px;background-color: red;animation: run 4s;
}

这样就可以让方块绕正方形轨迹运动,run也就是animation-name,时间是按照着关键帧所占的比例相应划分。

当然也可以填多组值:

animation:run 4s, color-change 4s;

animation-timing-function、animation-delay

这两个属性的作用和transition里面是相似的。

但是animation-timing-function控制的是每两个关键帧之间的过渡,也就是每一段之间的过渡都是相同的。

animation-iteration-count

这个属性控制动画执行多少次。

可以填数字,也可以填 infinite无限循环。

animation-direction

这个属性定义运动方向。

normal

正常方向。

reverse

反方向运行。

alternate

动画先正常运行再反方向运行,并持续交替运行。

这个可以实现一个钟摆运动。

alternate-reverse

动画先反运行再正方向运行,并持续交替运行。

这个属性值是不常用的,因为没必要,提前设置好方向的话,altemate也就够用了。

animation-play-state

这个属性检索或设置对象动画的状态,有两个属性值,默认值是running,也就是鼠标放上去以后运动,还有一个属性值是pause,在鼠标放上去后可以暂停方块的运动,但是这个属性不常用,因为兼容性有问题,有的浏览器在鼠标放上去以后可以暂停,但是鼠标离开以后不会继续运动,所以这个属性尽量不用。

animation-fill-mode

动画运动完以后会回归到原始状态,那这个属性设置对象动画时间之外的状态。

none

默认值。不设置对象动画之外的状态。

forwards

设置对象状态为动画结束时的状态,这个属性值只是设置动画最后一帧结束之后的状态,不可以设置开始之前的。

backwards

设置对象状态为动画开始时的状态,这个属性也不可以设置结束之后的状态,只针对动画开始之前的状态。

both

设置对象状态为动画结束或开始的状态,这个属性值用的比较多。

应用

现在做一个太阳和月亮交替升落的动画,在做动画之前一定要看属性支不支持。

    <div class="space"></div><div class="sun"></div><div class="moon"></div>
*{margin:0;padding:0;
}
body{background-color: #000;
}
@keyframes space-change{0%{opacity: .3;}25%{opacity: 1;}50%{opacity: .3;}75%{opacity: .1;}100%{opacity: .3;}
}
@keyframes sunrise{0%{opacity: 0;}10%{opacity: 1;transform:scale(.7, .7) translatex(0) translatey(0);}30%{transform:scale(.5, .5) translatex(0) translatey(-500px);opacity: 1;}50%{opacity: 0;transform:scale(.7, .7) translatex(400px) translatey(0);}100%{opacity: 0;}
}
@keyframes moonrise{0%{opacity: 0;}30%{opacity: 0;transform:translatey(0);}50%{opacity: 0;}70%{transform:translatey(-300px);opacity: 1;}80%{transform:translatey(-300px);opacity: 1;}90%{opacity: 0;}100%{transform:translatey(0);opacity: 0;}
}
.space{height:500px;background-image: linear-gradient(to bottom, rgba(0, 130, 255, 1), rgba(255, 255, 255, 1));animation: space-change 10s cubic-bezier(.5,0,.5,1) infinite;
}
.sun{position: absolute;left:calc(50% - 25px);top:calc(50% - 25px);width:50px;height:50px;background-color: #fff;border-radius:50%;transform:scale(.5, .5);box-shadow: 0px 0px 100px 50px #fff,0px 0px 250px 125px #ff0;animation:sunrise 10s infinite;
}
.moon{position: absolute;left:calc(50% + 400px);top:calc(50% - 50px);width:100px;height:100px;background-color: #fff;border-radius: 50%;box-shadow: 0px 0px 8px #fff, inset 0px 0px 8px #000;animation:moonrise 10s cubic-bezier(0,0,.5,.5) infinite;
}
.moon::after{position: absolute;content:"";width:90px;height:90px;background-color: #000;border-radius: 50%;left:-10px;top:-10px;
}

Animation of CSS3相关推荐

  1. 敲好看的CSS渐变色 和 敲好看的animation动画 css3

    效果 完整代码: <!DOCTYPE html> <html lang="en"><head><meta charset="UT ...

  2. html animation 属性,CSS3动画属性:动画(animation)

    一:动画(animation)的参数详解 由于上面用到了animation动画,这里详细介绍下这个animation的参数. 简介 CSS动画(Animations)简单说就是在一段固定的动画时间内暗 ...

  3. 弄清 CSS3 的 transition 和 animation

    弄清 CSS3 的 transition 和 animation 原文:弄清 CSS3 的 transition 和 animation 弄清 CSS3 的 transition 和 animatio ...

  4. css动画走马灯5秒,css3 transition 和 animation实现走马灯

    这段时间在做一个App,H5的开发.页面上有公告 以走马灯的形式显示出来. 在开始直接用的marquee标签,后来发现在ios客户端,走马灯移动不够平滑,有抖动现象. 对于有强迫症的我而言是无法忍受的 ...

  5. 用html怎么制作风车,css3 animation实现风车转动

    项目中经常有用到动画效果,比如Loading.风车转动等等.最简单的办法是使用gif,但是gif在半透明背景下有白边,体验不友好,好在现在可以使用css3的anmiation来实现动画效果,极大的提升 ...

  6. CSS3简单特效--animation实现流光按钮

    CSS3简单特效–animation实现流光按钮 在学习css3的过程中,发现很多看着炫酷的效果,利用css3的属性能很简单的实现,animation是css3动画效果中常见的属性.下面让我们了解一下 ...

  7. html css animation,css animation是什么?

    animation是CSS3中的一个简写属性,可以通过设置六个动画属性来实现动画效果.这六个属性分别为动画名称.动画时间.速度曲线.动画延迟.播放次数及动画是否反向播放. 语法:animation: ...

  8. CSS3各个模块详解

    一, CSS3 盒子 阴影 属性 box- shadow 也是 CSS3 新增 的 一个 重要 属性, 用来 定义 元素 的 盒子 阴影. inset: 阴影 类型, 可选 值. 如果不 设置, 其 ...

  9. CSS3的2D转换和3D转换,你了解了嘛?

    css3的2D转换和3D转换 CSS3大纲: 本次讲解css3带来了两种转换:2D转换和3D转换 1. 2D转换 转换( transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移(tr ...

最新文章

  1. memcached原理详述及配置
  2. managedwifi.codeplex.com
  3. 关于xml的模糊查询问题
  4. 长假后第一天不想工作,这病咋治?
  5. iOS上相见恨晚的6个APP
  6. itertools mode 之 combinations用法
  7. LINUX下使用elasticsearch-jdbc工具实现MySQL同步到ElasticSearch 以及linux 64位centos系统安装jdk1.8
  8. yarn集群启动时,并不自动启动resoucemanager的原因
  9. 贴吧小爬虫之爬取源码
  10. 盘点物联网常用的八种通信协议
  11. 1.搭建JavaEE开发环境
  12. 吊炸天!一行命令快速部署大规模K8S集群!!!
  13. MySQL-Proxy实现MySQL读写分离
  14. hdu 1133 Buy the Ticket(递推+精度精算)
  15. 实验5.2 动态内存分配生成动态数组完成矩阵转置
  16. ORACLE有EXCEL中trend函数,【Excel函数】TREND函数 - 曹海峰个人博客
  17. 8psk信号的载波调制 matlab,EDGE系统中GMSK和8psk调制的应用原理
  18. LeetCode 1055. 形成字符串的最短路径
  19. ubuntu和kubuntu换源
  20. 通向Golang的捷径【20. 使用 Go 语言的 GAE】

热门文章

  1. 如何用Google Analytics监测百度竞价广告
  2. 2022年口腔医疗器械行业市场规模全景监测分析预测及细分产品市场需求战略研究
  3. Android Launcher3 去掉应用列表后,在系统桌面拖动应用图标卸载应用
  4. css实现折叠样式实现
  5. windows老是弹出用户账户控制关闭方法
  6. IE浏览器的调试工具
  7. java 欧几里德_用java实现欧几里得算法
  8. Eclipse如何解决启动慢的问题,超全!!!
  9. Mysql数据库主从复制
  10. 生信分析——聚类分析