暂停和播放CSS3动画的两种实现方法
1,直接修改animationPlayState
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div{
background-color: #ff0000;
position: absolute;
animation:mymove 4s 1;
-moz-animation:mymove 4s 1; /* Firefox */
-webkit-animation:mymove 4s 1; /* Safari and Chrome */
-o-animation:mymove 4s 1; /* Opera */ -webkit-animation-fill-mode: forwards ;
-animation-fill-mode: forwards ;
}
@keyframes mymove {
from {top: 0}
to {top: 100px}
}
@-webkit-keyframes mymove {
from {top: 0}
to {top: 100px}
}
</style>
</head>
<body>
<div id="nice">nice</div>
<script>
var nice = document.getElementById("nice"); var prefixs = ["","o","moz","webkit"],
div = document.createElement("div"),
computeStyle,
prefixAnimationPlayState;
//获取所支持的animationPlayState,IE6,7,8不支持CSS3,就不写currentStyle的兼容代码了
computeStyle = window.getComputedStyle(document.documentElement,"");
prefixs.forEach(function(key){
var prefix = !key ? "animationPlayState" : key + "AnimationPlayState";
if(typeof computeStyle[prefix] == "string")
prefixAnimationPlayState = prefix;
}) setTimeout(function(){
nice.style[prefixAnimationPlayState] = "paused";
},1000); setTimeout(function(){
nice.style[prefixAnimationPlayState] = "running";
},2000);
</script>
</body>
</html>
2,修改class
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div{
background-color: #ff0000;
position: absolute;
animation:mymove 4s 1;
-moz-animation:mymove 4s 1; /* Firefox */
-webkit-animation:mymove 4s 1; /* Safari and Chrome */
-o-animation:mymove 4s 1; /* Opera */ -webkit-animation-fill-mode: forwards ;
-animation-fill-mode: forwards ;
}
@keyframes mymove {
from {top: 0}
to {top: 100px}
}
@-webkit-keyframes mymove {
from {top: 0}
to {top: 100px}
} .paused{
-webkit-animation-play-state: paused!important;
-moz-animation-play-state: paused!important;;
-o-animation-play-state: paused!important;;
-animation-play-state: paused!important;;
} .running{
-webkit-animation-play-state: running!important;;
-moz-animation-play-state: running!important;;
-o-animation-play-state: running!important;;
-animation-play-state: running!important;;
}
</style>
</head>
<body>
<div id="nice">nice</div>
<script>
var nice = document.getElementById("nice"); vardiv = document.createElement("div");//通过修改class暂停
setTimeout(function(){
nice.className = "paused";
},1000); setTimeout(function(){
nice.className = "running";
},2000);
</script>
</body>
</html>
暂停和播放CSS3动画的两种实现方法的更多相关文章
- android缩放动画的两种实现方法
在android开发.我们会常常使用到缩放动画,普通情况下缩放动画有两种实现方式.一种是直接通过java代码去实现,第二种是通过配置文件实现动画,以下是两种动画的基本是用法: Java代码实现: // ...
- css3动画的两种方式transition和@keyframs
- Android系统移植与调试之------->如何修改开机动画的两种方式剖析
首先,我们先来分析一下源码: frameworks/base/cmds/bootanimation/BootAnimation.cpp 首先看一下定义的常量: BootAnimation::ready ...
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...
- cocos2dx 帧动画的两种创建方式
看了好几天cocos2dx的帧动画,现在才有点眉目,为了高效期间我们一般会用到 精灵帧缓存(CCSpriteFrameCache) 和动画缓存(CCAnimationCache) .大体的操作步骤: ...
- android位移动画的两种实现方式
在android开发,我们会常常使用到位移动画,普通情况下位移动画有两种实现方式.一种是直接通过java代码去实现,第二种是通过配置文件实现动画,以下是两种动画的基本是用法: 纯Java代码实现: / ...
- android旋转动画的两种实现方式
在android开发,我们会常常使用到旋转动画,普通情况下旋转动画有两种实现方式,一种是直接通过java代码去实现,第二种是通过配置文件实现动画.以下是两种动画的基本是用法: 纯Java代码实现: / ...
- 关于Unity的两种调试方法
Unity的两种调试方法 1.Debug.Log()输出语句调试,平时经常用这个 2.把MonoDevelop和Unity进行连接后断点调试 先把编辑器选择为MonoDevelop,Edit----& ...
- angular2系列教程(十)两种启动方法、两个路由服务、引用类型和单例模式的妙用
今天我们要讲的是ng2的路由系统. 例子
随机推荐
- openMRS项目
openMRS项目的背景:我们的世界继续遭受大规模的大流行,因为超过4000万人感染或死于艾滋病毒/艾滋病-大多数(高达95%)是在发展中国家.预防和治疗艾滋病毒/艾滋病这种规模需要有效的信息管理,这 ...
- 写给Android App开发人员看的Android底层知识(1)
这个系列的文章一共8篇,我酝酿了很多年,参考了很多资源,查看了很多源码,直到今天把它写出来,也是战战兢兢,生怕什么地方写错了,贻笑大方. (一)引言 早在我还是Android菜鸟的时候,有很多技术我都 ...
- html学习笔记 - 标签
单标签 : <!DOCTYPE html> 解析类型标签 <!-- xxx --> 注释标签 <br /> 换行标签 <hr /> 分割线标签 < ...
- 在eclipse-jee-juno中配置Aptana对jQuery代码自动提示
主要问题 在Aptana的Web Project中打开js文件有JavaScript的自动提示,但是在JavaEE项目中却没有. 版本 eclipse-jee-juno,即Eclipse 4.2的Ja ...
- Workout Wednesday Redux (2017 Week 3)
I had started a "52 Vis" initiative back in 2016 to encourage folks to get practice making ...
- 防火墙上开放Oracle服务端口1521的方法
近来由于工作需要,在Windows XP平台上安装了Oracle9i数据库作为测试之用,一切正常.但当客户机连接服务器时却总是超时,我首先想到了防火墙,当我打开1521端口时,连接操作仍然失败.我又怀 ...
- 将数据的初始化放到docker中的整个工作过程(问题记录)
将数据的初始化放到docker中的整个工作过程 由于是打算作为个人博客,所以对于install这个步骤,我从一开始就打算删掉的,前面一个多星期一直在修bug,到前天才开始做这个事情. 过程中也是碰到了 ...
- cpp(第九章)
1.静态外部,不在任何函数内定义.静态内部,不在任何函数内,使用关键字static.静态无连接性,在代码块中,使用关键字static. 2.静态变量会自动零初始化. 3.单定义规则,在每个使用外部变量 ...
- JDK并发包
JDK5之后引进了并发包java.util.concurrent,让并发的开发更加可控,更加简单.所以有必要好好学习下,下面从同步控制.并发容器.线程池三部分来详细了解它. 1. 各种同步控制工具的使 ...
- python大规模爬取京东
python大规模爬取京东 主要工具 scrapy BeautifulSoup requests 分析步骤 打开京东首页,输入裤子将会看到页面跳转到了这里,这就是我们要分析的起点 我们可以看到这个页面 ...