欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

css3的animate动画属性小记

程序员文章站 2022-02-13 20:07:55
...

注:例子和截图均参考菜鸟教程,地址:http://www.runoob.com/cssref/css3-pr-animation.html

1.html

<html>
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no,minimum-scale=1.0,maximum-scale=1.0">
		<title>菜鸟教程(runoob.com)</title>
		<style>
			div {
				width: 100px;
				height: 100px;
				background: red;
				position: relative;
				/*需做兼容处理*/
				animation: mymove 5s infinite;
				-webkit-animation: mymove 5s infinite;
				-moz-animation: mymove 5s infinite;
				
			}	
			/*@keyframes定义动画名称*/		
			@keyframes mymove {
				from {
					left: 0px;
				}
				to {
					left: 200px;
				}
			}			
			@-webkit-keyframes mymove{
				from {
					left: 0px;
				}
				to {
					left: 200px;
				}
			}
			@-moz-keyframes mymove{
				from {
					left: 0px;
				}
				to {
					left: 200px;
				}
			}
		</style>
	</head>
	<body>
		<p><strong>注意: </strong> Internet Explorer 9 及更早IE版本不支持 animation 属性。</p>
		<div></div>
	</body>
</html>

2.语法(支持简写)

animation: name duration timing-function delay iteration-count direction fill-mode play-state;
说明
animation-name 指定要绑定到选择器的关键帧的名称
animation-duration 动画指定需要多少秒或毫秒完成
animation-timing-function 设置动画将如何完成一个周期
animation-delay 设置动画在启动前的延迟间隔。
animation-iteration-count 定义动画的播放次数。
animation-direction 指定是否应该轮流反向播放动画。
animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
animation-play-state 指定动画是否正在运行或已暂停。
initial 设置属性为其默认值。 阅读关于 initial的介绍。
inherit 从父元素继承属性。 阅读关于 initinherital的介绍。

3.说明:

(1)在某些时候希望,动画开始前,动画元素隐藏,在执行时才显示:(animation-fill-mode和opacity同时使用)

  ①html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>菜鸟教程(runoob.com)</title>
		<style>
			div {
				width: 100px;
				height: 100px;
				background: red;
				position: relative;
				animation: mymove 3s;
				animation-iteration-count: 2;
				/*重要设置为both*/
				animation-fill-mode: both;
				animation-delay: 3s;
				
				-webkit-animation: mymove 3s;
				-webkit-animation-iteration-count: 2;
				/*重要设置为both*/
				-webkit-animation-fill-mode: both;
				-webkit-animation-delay: 3s;
			}
			
			@keyframes mymove {
				from {
					top: 0px;
					/*重要设opacity为0*/
					opacity: 0;
				}
				to {
					top: 200px;
					/*重要设opacity为1*/
					opacity: 100;
				}
			}
			
			@-webkit-keyframes mymove
			
			{
				from {
					top: 0px;
					opacity: 0;
				}
				to {
					top: 200px;
					opacity: 100;
				}
			}
		</style>
	</head>
	<body>
		<p><strong>注意:</strong>Internet Explorer 9 及其之前的版本不支持 animation-fill-mode 属性。</p>
		<div></div>
	</body>
</html>

②说明:

a.必须设置:animation-fill-mode: both;-webkit-animation-fill-mode: both;

b.同时设置:opacity初始为0,完成后为1

(2)animation-iteration-count:设置动画次数

         ①具体正整数或零,为次数;

         ②infinite为“动画应该播放无限次(永远)”

(3)animation-play-state:指定动画是否正在运行或已暂停

(在有些情况,例如音乐播放器右上角一直旋转的播放图标,播放时不停旋转,暂停时停止旋转,继续播放时继续旋转,就用到了)

<html>
	<!DOCTYPE html>
	<html>

	<head>
		<meta charset="utf-8">
		<title>菜鸟教程(runoob.com)</title>
		<style>
			.box {
				width: 100px;
				height: 100px;
				background: red;
				position: relative;
				animation: mymove 10s;				
				/* Safari and Chrome */
				-webkit-animation: mymove 10s;				
			}
			/*暂停动画和继续运动*/
			.paused{
				animation-play-state: paused;
				-webkit-animation-play-state: paused;				
			}
			.btnks,.btnzt{
				cursor: pointer;
				width: 100px;
				height: 50px;
				line-height: 50px;
				text-align: center;
				border-radius: 50px;			
				margin: 10px;
				background-color: orange;
			}
			@keyframes mymove {
				from {
					left: 0px;
				}
				to {
					left: 500px;
				}
			}
			
			/* Safari and Chrome */
			@-webkit-keyframes mymove{
				from {
					left: 0px;
				}
				to {
					left: 500px;
				}
			}
		</style>
	</head>
	<body>
		<p><strong>注意:</strong> animation-play-state属性不兼容 Internet Explorer 9以及更早版本的浏览器.</p>
		<div class="box"></div>
		
		<div class="btnzt">暂停</div>
		<div class="btnks">开始</div>
		<script src="https://cdn.bootcss.com/jquery/1.8.3/jquery.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			//暂停
			$(".btnzt").on("click",function(){
				$(".box").addClass("paused");
			});
			//继续动画
			$(".btnks").on("click",function(){
				$(".box").removeClass("paused");
			});
		</script>
	</body>
</html>

(4)animation-timing-function:运动曲线

animation-timing-function使用的数学函数,称为三次贝塞尔曲线,速度曲线。使用此函数,您可以使用您自己的值,或使用预先定义的值之一:

描述 测试
linear 动画从头到尾的速度是相同的。 测试
ease 默认。动画以低速开始,然后加快,在结束前变慢。 测试
ease-in 动画以低速开始。 测试
ease-out 动画以低速结束。 测试
ease-in-out 动画以低速开始和结束。 测试
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

(5)animation动画当元素由隐藏变为显示时,会再次执行(这点很好,在做某些H5活动时,做成一个页面,点击返回按钮,让动画的容器由隐藏变为显示,动画就会再次执行,不用再次初始化js,很是方便)

4.详情参考:http://www.runoob.com/cssref/css3-pr-animation.html

相关标签: animation