@keyframes

指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。

注意:@keyframes 规则不兼容 IE 9 以及更早版本的浏览器.

语法:@keyframes animationname {keyframes-selector {css-styles;}

说明
animationname 必需的。定义动画的名称。
keyframes-selector 必需的。动画持续时间的百分比。

合法值:

0-100%
from (和0%相同)
to (和100%相同)

注意: 您可以用一个动画keyframes-selectors。

css-styles 必需的。一个或多个合法的CSS样式属性

@keyframes 创建动画,把它绑定到一个选择器,否则动画不会有任何效果。

属性:

属性 描述
@keyframes 规定动画。
animation 所有动画属性的简写属性。
animation-name 规定 @keyframes 动画的名称。
animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0。
animation-timing-function 规定动画的速度曲线。默认是 "ease"。
animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
animation-delay 规定动画何时开始。默认是 0。
animation-iteration-count 规定动画被播放的次数。默认是 1。
animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。
animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。

演示1:

为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器(可以不由0%出发,不由100%结束)

 代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><style>div {width: 150px;height: 150px;background: red;position: relative;animation: a 3s infinite;//动画名a 时间5s}@keyframes a {10% {top: 0px;}30% {top: 200px;}50% {top: 50px}60% {top: 100px;}90%{top: 0px}}</style></head><body><div></div></body>
</html>

演示2:

 代码(部分):

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><style>html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {margin: 0;padding: 0;border: 0;font-size: 100%;font: inherit;vertical-align: baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {display: block}body {line-height: 1}ol,ul {list-style: none}blockquote,q {quotes: none}blockquote:before,blockquote:after,q:before,q:after {content: '';content: none}table {border-collapse: collapse;border-spacing: 0}</style><style>#contain {width: 300px;height: 100px;position: absolute;top: 0;right: 0;left: 0;bottom: 0;margin: auto;opacity: 0;animation: fadeIn 1s 1;animation-fill-mode: forwards;}.wrap {animation: rotate 1000ms infinite ease-in-out alternate, zindex 2000ms infinite ease-in-out;position: absolute;z-index: 0;}.part {width: 100px;height: 100px;background: radial-gradient(circle at 0 0, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 65%, rgba(0, 0, 0, 0.1) 65%, rgba(0, 0, 0, 0.1));background-color: #E3746B;border-radius: 50%;animation: scale 1000ms infinite ease-in-out alternate;animation-delay: -500ms;transform: scale(0.5);}.part:after {content: '';width: 100px;height: 10px;background: #eee;position: absolute;top: 130px;border-radius: 50%;}#wrap2 {animation-delay: -1000ms;}#part2 {background-color: #397BF9;animation-delay: -1500ms;}#wrap3 {animation-delay: -1500ms;}#part3 {background-color: #F4B400;animation-delay: -2000ms;}#wrap4 {animation-delay: -2500ms;}#part4 {background-color: #0F9D58;animation-delay: -3000ms;}@keyframes rotate {100% {transform: translateX(200px);}}@keyframes scale {100% {transform: scale(1);}}@keyframes zindex {25% {z-index: 1;}75% {z-index: -1;}}@keyframes fadeIn {100% {opacity: 1;}}</style><script src="js/prefixfree.min.js"></script><script src="js/modernizr.js"></script></head><body><div id="contain"><div class='wrap' id='wrap1'><div class='part' id='part1'></div></div><div class='wrap' id='wrap2'><div class='part' id='part2'></div></div><div class='wrap' id='wrap3'><div class='part' id='part3'></div></div><div class='wrap' id='wrap4'><div class='part' id='part4'></div></div></div><script src='js/jquery.js'></script></body>
</html>

演示3:

这个是响应式动画,玩家下棋后触发两个动画。(使用jq)

css关键部分

.rotate {-webkit-animation: rotating 2s linear infinite;/* Safari 和 Chrome */-moz-animation: rotating 2s linear infinite;/* Firefox */-ms-animation: rotating 2s linear infinite;/* Triden */-o-animation: rotating 2s linear infinite;/* Opera */animation: rotating 2s linear infinite;/*IE*/
}@keyframes rotating {/*使用@keyframes规则,你可以创建动画。创建动画是通过逐步改变从一个CSS样式设定到另一个。在动画过程中,您可以更改CSS样式的设定多次。指定的变化时发生时使用%,或关键字"from"和"to",这与0%到100%相同。*/from {-ms-transform: rotateY(0deg);-moz-transform: rotateY(0deg);-webkit-transform: rotateY(0deg);s-o-transform: rotateY(0deg);transform: rotateY(0deg);}to {-ms-transform: rotateY(360deg);-moz-transform: rotateY(360deg);-webkit-transform: rotateY(360deg);-o-transform: rotateY(360deg);transform: rotateY(360deg);}
}

js部分

showPlayerOnePrompt: function() {if (MYAPP.secondPlayer) {$('.player-one-turn p').text('玩家 1 下棋!');} else {$('.player-one-turn p').text('该你下了!');}$('.player-one-turn').animate({'top': '-45px'}, 500);},hidePlayerOnePrompt: function() {$('.player-one-turn').animate({'top': '0'}, 500);},showPlayerTwoPrompt: function() {if (MYAPP.secondPlayer) {$('.player-two-turn p').text('玩家 2 下棋!');} else {$('.player-two-turn p').text('电脑回合');}$('.player-two-turn').animate({'top': '-45px'}, 500);},hidePlayerTwoPrompt: function() {$('.player-two-turn').animate({'top': '0'}, 500);},

html部分(p是文本显示,js内修改)

<div class="player-one-turn"><p></p>
</div>
<div class="player-two-turn"><p></p>
</div>

css3动画 @keyframes相关推荐

  1. CSS3动画@keyframes中translate和scale混用出错问题

    在写基于网页的2048时,想让一个元素出现时已经通过translate属性固定在指定位置,同时显示动画scale(0)-->scale(1),以实现放大出现效果. CSS代码为 @-webkit ...

  2. 用css3的@keyframes里设置transform:rotate(); 当控制动画暂停:animation-play-state:paused暂停,在微信和safari里无效...

     用css3动画 @keyframes里设置transform:rotate(); 控制动画暂停和运动可以用属性:animation-play-state:paused(暂停)|running(运动) ...

  3. css3动画与@keyframes关键帧

    Css3动画与@keyframes关键帧 开发工具与关键技术:DW 作者:黄金燕 年级: 1805 撰写时间: 2019年2月21日 在一个"@keyframes"中的样式规则可以 ...

  4. CSS3 动画专栏:@keyframes与animation的恋曲

    目录 0.  CSS3的基础模型 1.  transform:---()实现元素的自由变换 2.  让我们的元素动起来吧! 2.1 CSS3 @keyframes 规则 2.1.1@keyframes ...

  5. css3 keyframes 取消动画,为什么我的CSS3动画使用@keyframes在每个百分比范围内停止几毫秒?...

    我想制作一个帆船动画.它有效,但它不是一个流畅的动画.它停止在我在@keyframes中做出的每个更改中.我正在使用transform:rotate(-5deg),然后更改为5deg以模拟波浪效果,同 ...

  6. css怎么动画中该透明度,通过css3动画和opacity透明度实现呼吸灯效果

    本文介绍了通过css3动画和opacity透明度实现呼吸灯效果的方法,分享给大家,具体如下: 呼吸灯 /*也可以通过加层罩,通过设置层罩透明度来实现亮度动画*/ body{ background-co ...

  7. 小猿圈自学web前端之CSS3动画练习案例:用CSS3做个钟表

    前段时间发的五子棋的游戏很多小伙伴都私聊让再做个,今天小猿圈web前端讲师为大家分享的是CSS3动画练习案例:用CSS3做个钟表,想玩的小伙伴记得自己运行一下呦. 自学CSS3属性之后,我们来用一个小 ...

  8. css3动画简介以及动画库animate.css的使用

    在这个年代,你要是不懂一点点css3的知识,你都不好意思说你是个美工.美你妹啊,请叫我前端工程师好不好.呃..好吧,攻城尸...呵呵,作为一个攻城尸,没有点高端大气上档次的东西怎么能行呢,那么css3 ...

  9. 简单CSS3动画制作

    本贴已重新编辑至http://www.cnblogs.com/fastmover/p/4977358.html 最近需要用到了一些CSS3动画,基本用Animate.css(https://githu ...

最新文章

  1. android ui布局开发,Android UI设计初步(基本布局)
  2. 皮一皮:现在真是键盘侠的年代阿....
  3. LeetCode Water and Jug Problem(巧妙转换为gcd问题)
  4. python类_Python中的类
  5. PAT (Advanced Level) 1010 Radix(二分+模拟)
  6. 技巧:教你一招优化 Go GC
  7. mybaits 字段设置null_并发编程的艺术:双重检查锁为什么要使用volatile字段?
  8. php月末,php获取月头月末
  9. Java8所有的包介绍(由英文文档翻译而来)
  10. 计算机的桌面窗口有哪几部分,电脑窗口有哪几部分组成
  11. 2022-07-25 第五小组 顾祥全 学习笔记 day18-JavaSE-接口
  12. Dell R730 xd “CPU 2 M23 VPP PG voltage is outside of range“故障
  13. 一切要靠自己努力去争取!!!
  14. 企业高管和高收入人群必读的税务筹划策略!
  15. 什么是鸟撞?该如何设计防鸟撞的建筑?#可持续设计
  16. 错误代码 missing-signature 错误原因: 缺少签名参数-自查方案
  17. 基于PHP大学生英语在线教学网
  18. 火车头linux,火车头采集器 能在linux系统上使用吗?
  19. C语言基于单链表的词典软件
  20. 全国首例!某度起诉“文库下载神器”,索赔300万

热门文章

  1. 当Android遇上设计模式之工厂方法(Factory)模式
  2. 连接zookeeper报错Connection refused: no further information
  3. 如何给对话框添加背景图片
  4. HP服务器P410i配置RAID
  5. 《机械交易系统》读书笔记:回测指标
  6. 论文的数据一般在哪里找?
  7. 怎么修改html模板里的背景,如何替换背景图模板中的背景
  8. 计算机网络(自顶向下第七版)资料整理
  9. 计算机学校迎新条幅,高校另类迎新横幅创意十足大学迎新横幅标语
  10. c语言库的学习——windows.h