CSS专题之动画

三个关键属性:transform   transition   animation

 

基本知识:


1、变形Transform

   1.1、缩放scale    transformscale(0.51.5)  //水平缩小50% 垂直扩大150%,只有一个参数时两个方向一样

   1.2、倾斜skew  transformskew(30deg30deg)//两个方向的倾斜, 只有一个参数时表示水平倾斜(左上)

   1.3、移动translate   transformtranslate(30px30px)//两个方向 的平移,只有一个参数时表示水平平移(右上)

   1.4、旋转rotate    transform:rotate(45deg)   //顺时针旋转45

注意:使用transform方法变形时,是以元素的基准点进行的, 使用transform-origin属性可改变基准点,水平方向可取left  center right,垂直方向可取top center bottom

2、Transition

   Transition:property duration timing-function,参数一指定对哪个参数进行平滑过渡,参数二指定多长时间内完成过度,参数三指定用什么方法进行过度

3、Animation 

  使用方法:

1、创建关键帧(注意:要兼容的话要加上前缀,如-webkit-等) 

@keyframes 关键帧集合名{

0%{  代码  }

50%{  代码  }

100%{  代码  }

}

 2、在指定元素上使用关键帧

      -webkit-animation-name: 关键帧名;

      -webkit-animation-duration:5s;

      -webkit-animation-timing-function:linear;

 

语法:

animationname duration timing-function delay iteration-count direction;

描述

animation-name

规定需要绑定到选择器的 keyframe 名称。

animation-duration

规定完成动画所花费的时间,以秒或毫秒计。

animation-timing-function

规定动画的速度曲线。

animation-delay

规定在动画开始之前的延迟。

animation-iteration-count

规定动画应该播放的次数,infinite表示无穷次。

animation-direction

规定是否应该轮流反向播放动画。

animation-directionnormal|alternate;

描述

normal

默认值。动画应该正常播放。

alternate

动画应该轮流反向播放。



代码实践:


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>CSS动画学习</title>
	<link rel="stylesheet" type="text/css" href="animate.css">
</head>
<body>
	<div class="test-transition">
		transition
	</div>
	<div class="transform-animate">
		<div class="test-transform_translate">
			transform:translate(x,y)
		</div>
		<div class="test-transform_scale">
			测试transform:scale(x,y)
		</div>
		<div class="test-transform_skew">
			测试transform:skew(x,y)
		</div>
		<div class="test-transform_rotate">
			测试transform:rotate()
		</div>
		<div class="test-animate">
			animation
		</div>
		<div class="sum">
			<ul>
				<h2>总结:</h2>
				<li>transition:属性名 几秒内完成 用什么样的速度完成</li>
				<li>transform有四种变换,通常结合transition一起使用,即将transform看作transition的属性名</li>
				<li>实现变化的时机是给需要变化的box添加hover伪类,伪类样式里填写变化后的样式,原来box里填写变化前的样式</li>
				<li>animate的使用只需两步:<br>1创建关键帧,在每一帧里写需要变化的属性;<br>2 对要进行变化的box添加animation属性,该属性有六个值:帧名 几秒内完成 完成速度函数 延迟多久才执行 重复次数 是否需要反向执行动画(normal/alternate)</li>
			</ul>
	
	</div>
	</div>
	
	
</body>
</html>
 样式表文件:

.test-transition,.test-transform_translate,.test-transform_scale,
.test-transform_skew,.test-transform_rotate,.test-animate{
	width: 200px;
	height: 200px;
	text-align: center;
	line-height: 200px;
	background-color: #ccc;
	float: left;
	margin: 20px;
	border-radius: 100px;
}
.sum{
	font-family: '微软雅黑';
	width: 800px;
	height: 260px;
	background-color: #ccc;
	margin: 20px;
	float:left;
}
.test-transition{
	transition:background-color 2s linear;
}
.test-transition:hover{
	background-color: red;
}
.test-transform_translate,.test-transform_scale,
.test-transform_skew,.test-transform_rotate{
	transition: transform 2s linear;
	transform-origin:left top;
}
.test-transform_translate{
	transform:translate(0);	
}
.test-transform_translate:hover{
	transform:translate(150px);
}
.test-transform_scale{
	transform:scale(1);
}
.test-transform_scale:hover{
	transform:scale(1.5);
}
.test-transform_skew{
	transform:skew(0);
}
.test-transform_skew:hover{
	transform:skew(30deg);
}
.test-transform_rotate{
	transform:rotate(0);
}
.test-transform_rotate:hover{
	transform:rotate(360deg);
}
.test-animate{
	animation:changecolor 4s linear infinite alternate;
}
@keyframes changecolor{
	0%{
		background-color: blue;
	}
	50%{
		background-color: red;
	}
	100%{
		background-color: green;
	}
}

由于是动画效果,不好演示,就不上图了,可自行copy代码到浏览器看效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值