CSS3两个动画顺序衔接播放

问题描述:

第一个动画先播放,播放完成后,第二个动画紧接着播放。

解决办法:

1. 将第二个的延迟时间(animation-delay) 设置成第一个的持续时间( animation-duration );

2. 多个动画应用时用逗号分隔开;

此时,CSS3的动画代码就要分开写了,不能再简写了,诸如animation:rotate-back 10000ms linear infinite这样的简写就是不行的,因为在同一代码中要加入两个动画,代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body{background:#666;}
img
{
position:absolute;left:200px;top:100px;
animation-name:myfirst, rotate-back;
animation-duration:1000ms, 10000ms;
animation-timing-function:linear, linear;
animation-delay:0, 1000ms;
animation-iteration-count:1, infinite;
animation-fill-mode:forwards, none;
-moz-animation-name:myfirst, rotate-back;
-moz-animation-duration:1000ms, 10000ms;
-moz-animation-timing-function:linear, linear;
-moz-animation-delay:0, 1000ms;
-moz-animation-iteration-count:1, infinite;
-moz-animation-fill-mode:forwards, none;
-ms-animation-name:myfirst, rotate-back;
-ms-animation-duration:1000ms, 10000ms;
-ms-animation-timing-function:linear, linear;
-ms-animation-delay:0, 1000ms;
-ms-animation-iteration-count:1, infinite;
-ms-animation-fill-mode:forwards, none;
-o-animation-name:myfirst, rotate-back;
-o-animation-duration:1000ms, 10000ms;
-o-animation-timing-function:linear, linear;
-o-animation-delay:0, 1000ms;
-o-animation-iteration-count:1, infinite;
-o-animation-fill-mode:forwards, none;
-webkit-animation-name:myfirst, rotate-back;
-webkit-animation-duration:1000ms, 10000ms;
-webkit-animation-timing-function:linear, linear;
-webkit-animation-delay:0, 1000ms;
-webkit-animation-iteration-count:1, infinite;
-webkit-animation-fill-mode:forwards, none;
}

/*myfirst*/
@keyframes myfirst {
 from {top:-50px;}
 to {top:100px;}
}

@-moz-keyframes myfirst {
  from {top:-70px;}
 to {top:100px;}
}

@-webkit-keyframes myfirst {
  from {top:-300px;}
 to {top:100px;}
}

@-ms-keyframes myfirst {
  from {top:-300px;}
 to {top:100px;}
}

@-o-keyframes myfirst {
  from {top:-300px;}
 to {top:100px;}
}

/*rotate-back*/
@keyframes rotate-back {
 from {
    -webkit-transform: rotate(0deg);
       -moz-transform: rotate(0deg);
       -o-transform: rotate(0deg);
       -ms-transform: rotate(0deg);
       transform: rotate(0deg);
 }
 to {
    -webkit-transform: rotate(-360deg);
       -moz-transform: rotate(-360deg);
       -o-transform: rotate(-360deg);
       -ms-transform: rotate(-360deg);
       transform: rotate(-360deg);
 }
}

@-moz-keyframes rotate-back {
 from {
   -moz-transform: rotate(0deg);
   transform: rotate(0deg);
 }
 to {
   -moz-transform: rotate(-360deg);
   transform: rotate(-360deg);
 }
}

@-webkit-keyframes rotate-back {
 from {
   -webkit-transform: rotate(0deg);
   transform: rotate(0deg);
 }
 to {
   -webkit-transform: rotate(-360deg);
   transform: rotate(-360deg);
 }
}

@-ms-keyframes rotate-back {
 from {
   -ms-transform: rotate(0deg);
   transform: rotate(0deg);
 }
 to {
   -ms-transform: rotate(-360deg);
   transform: rotate(-360deg);
 }
}

@-o-keyframes rotate-back {
 from {
   -o-transform: rotate(0deg);
   transform: rotate(0deg);
 }
 to {
   -o-transform: rotate(-360deg);
   transform: rotate(-360deg);
 }
}
</style>
</head>

<body>
<img src="images/s_star.png" alt="" class="s_star">
</body>
</html>
时间: 2024-10-26 16:46:38

CSS3两个动画顺序衔接播放的相关文章

如何按顺序执行两个动画

问题: 假如:需要按顺序执行两个动画A.B,B动画需要在A动画执行完毕后再执行.两个动画的执行不能有时间间隔,即A动画执行完毕立即执行B动画. 实现方案: 事先已经导入了Facebook的pop框架,并#import <POP.h> 1.设置A动画的动画时间,执行A动画 2.创建NSTimer定时器timer,设置时间间隔为A动画的动画时间.并把timer添加到主运行循环. 3.把B动画添加到timer调用的的selector方法中. - (void)touchesBegan:(NSSet *

Qt程序启动画面播放(gif与swf两种动画格式)

学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少. 比如,Qt完整的API,程序运行之前的启动画面如何按理想效果播放等,每次想在项目中添加一些应用的时候,总是找不到好的书籍或文章可以马上学习.上手. 今天,就把前段时间对启动画面播放的学习及尝试做一个小小的总结.如果对大家有所帮助,那自然好:如果有什么不足或有什么可以改进的地方,还望朋友们多给点意见及建议,谢谢! 过程很简单,只是建立了一个基于Qt控制台的项目,文件也只有一个——"main.cpp"

css3 同时加载两个动画

最近在做H5,遇到这样的需求(如题) 先上一部分代码: .cur .p1d1d4{   width: 3rem;   margin: 2rem 5.3rem 0 0;   -webkit-animation: p1d1d4 1s ease-out;   animation: p1d1d4 1s ease-out; } @keyframes p1d1d4 {   0% {     margin: 2rem 10rem 0 0;   }   100% {     margin: 2rem 5.3re

css3的基础用法,新手必看哈(还有css3和jquery动画的对比)

第一步: 定义动画,名字可以各种起,就像方法名一样 1. 定义动画,名称为fadeIn @-webkit-keyframes fadeIn { 0% { opacity: 0; /*初始状态 透明度为0*/ } 50% { opacity: 0; /*中间状态 透明度为0*/ } 100% { opacity: 1; /*结尾状态 透明度为1*/ } } 方法里面还有很多写法: 如: /* 定义css方法,名字叫消失 Hides a leaf towards the very end of th

9款极具创意的HTML5/CSS3进度条动画(免积分下载)

尊重原创,原文地址:http://www.cnblogs.com/html5tricks/p/3622918.html 免积分打包下载地址:http://download.csdn.net/detail/yangwei19680827/7352505 今天我们要分享9款极具创意的HTML5/CSS3进度条动画,这些进度条也许可以帮你增强用户交互和提高用户体验,喜欢的朋友就收藏了吧. 1.HTML5/CSS3图片加载进度条 可切换多主题 今天要分享的这款HTML5/CSS3进度条模拟了真实的图片加

CSS3中的动画功能

CSS3中的动画功能分为Transitions功能和Animations功能,这两种功能都可以通过改变CSS中的属性值来产生动画效果. 1.Transitions功能通过将元素的某个属性从一个属性值在指定时间内平滑过渡到另一个属性值来实现动画功能.transition属性的用法如下: transition:property duration timing-function; 其中,property表示对哪个属性平滑过渡,取值可以是“background-color”.“color”.“width

如何制作css3的3d动画——以骰子旋转为例,详解css3动画属性

首先先来看两个用css3实现的炫酷的3d动画效果 1 2 3 4 5 6 你没看错,这个炫酷的效果都是用css3实现的. 下面是动画实现所需要用到的几个css3属性. 1.perspective:用来实现一个3d的场景 写3D效果的第一步是要创建一个3D场景,即索要实现效果的模块.这里用到了 perspective 属性和 perspective-origin 属性. perspective:用来定义3d动画距离浏览器的距离,单位是(px). perspective-origin:效果渲染的视角

强大的CSS3/JS:帧动画的多种实现方式与性能对比

Web动画形式 首先我们来了解一下Web有哪些动画形式 1\. CSS3动画 Transform(变形) Transition(过渡) Animation(动画) 2\. JS动画(操作DOM.修改CSS属性值) 3\. Canvas动画 4\. SVG动画 5\. 以Three.js为首的3D动画 以上各种动画形式都可以制作出一种类型的动画,那就是帧动画,也叫序列帧动画,定格动画,逐帧动画等,这里我们统一用帧动画来表述. 这里推荐一下我的前端学习交流扣qun:767273102 ,里面都是学习

纯css3配合vue实现微信语音播放效果

前言 每次写点东西都扯两句-0-,这几天一半精力放在移动端,一半维护之前的项目.书也少看了,不过还好依旧保持一颗学习的心.对于css3我是之前有专门整理过的,因此对于原理之前也算了解.今天是项目中遇到一个效果,来整理一下. 正文 首先我们可以找到微信的语音播放效果.这里自行打开手机微信进行查看.之前后台提起用gif动画,但是对于gif动画有两个难点:1.谁来画?(抱歉这种东西没有设计师来搞前端是不做的.)2.移动端你跟我提用gif? 很显然,必须用css3来搞.不过之前写js写的多了,发现css