过渡&动画

一、2D转换

css3转换

transform:向元素应用2D或3D转换

通过css3转换,能够对元素进行移动、缩放、转动、拉长或者拉伸。

转换即使元素改变形状、尺寸、位置的一种效果。

1、位移 
 transform: translate(x,y)/translateX()/translateY() 

例如:transform: translateX(500px);


2、缩放 
transform: scale(x,y)/scaleX()/scaleY() 

例如: transform: scale(2,2);
 

3、旋转 deg度数

例如:transform: rotateY(180deg);

4、 倾斜转换

transform: skew()/skewX()/skewY()

例如:transform: skew(60deg,60deg);

二、过渡

transition: 要去过渡的属性  过渡时长  过渡的时间延迟
例如:transition: all 2s;

实操:

test5.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>转换与过渡</title>
		<link rel="stylesheet" type="text/css" href="css/test5.css"/>
	</head>
	<body>
		<div class="box">
			<img src="img/巨星科技_05.png" alt="">
		</div>
		
	</body>
</html>

 test5.css

*{
	padding: 0;
	margin:0;
}

.box{
	width:310px;
	height:413px;
	/* 过渡 */
	/* transition: 要去过渡的属性  过渡时长  过渡的时间延迟; */
	transition: all 2s;
}

.box:hover{
	/* 2D转换 */
	/* 位移 */
	/* transform: translate(x,y)/translateX()/translateY() */
	 transform: translateX(500px); 
	/* 缩放 */
	/* transform: scale(x,y)/scaleX()/scaleY() */
	transform: scale(2,2);
	/* 旋转 deg度数 */
	transform: rotateY(180deg);
	/* 倾斜转换 */
	/* transform: skew()/skewX()/skewY(); */
	transform: skew(60deg,60deg);
}

.box img{  
	display: block;  /* 行元素转为块元素 */
	width:100%;
	height: 100%;
}

三、动画

1、css3动画属性

animation: 执行动画的名称 动画执行一次的时间 动画执行的速度曲线 动画执行的次数;

infinite不限次数    linear匀速

2、动画帧

@keyframes 动画的名称{
    0%{
        状态1
    }

…………
    100%{
        状态n
    }
}

实操:

test6.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>动画</title>
		<link rel="stylesheet" type="text/css" href="css/test6.css"/>
	</head>
	<body>
		<div class="ani">
		</div>
		
		<div class="heart">
			<img src="img/爱心.png" alt="" >
		</div>
	</body>
</html>

test6.css

*{
	padding: 0;
	margin: 0;
}

.ani{
	height: 100px;
	background-color: #f0f;
	/* 动画 */
	/* animation: 执行动画的名称 动画执行一次的时间 动画执行的速度曲线 动画执行的次数; */
	/* infinite不限次数 */
	/* linear匀速 */
	animation: anis 3s linear infinite;
}

/* 动画帧 */
@keyframes anis{
	0%{
		width: 0%;
		background-color: #0000FF;  /* 蓝色 */
	}
	100%{
		width:100%;
		background-color: #FF00FF; 
	}
}

/* 跳动的心 */
.heart{
	width:300px;
	height: 300px;
	margin:200px auto;
}

.heart img{
	display: block;
	width: 100%;
	animation: heart 1s infinite;
}

@keyframes heart{
	0%{
		transform: scale(1,1);
	}
	50%{
		transform: scale(1.4,1.4);
	}
	100%{
		transform: scale(1,1);
	}
}

练习:

test7.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>练习</title>
		<link rel="stylesheet" type="text/css" href="css/test7.css"/>
	</head>
	<body>
		<!-- 页面加载 -->
		<div class="loading">
		</div>
		
		<!-- 火箭 -->
		<div class="rocket">
			<img src="img/火箭.png" alt="">
		</div>
	</body>
</html>

 test7.css

*{
	padding: 0;
	margin: 0;
}

/* 加载效果 */
.loading{
	width: 150px;
	height: 150px;
	border: 5px solid #00f;  /* 边框 */
	margin: 60px auto;  /* 居中 */
	animation: load 6s linear infinite;
	border-top-color: #f0f;
	border-radius:50%;  /* 圆角 */
}

@keyframes load{
	0%{
		transform: rotate(0deg);
	}
	100%{
		transform: rotate(360deg);
	}
}

/* 火箭 */
.rocket{
	width:100px;
	height: 100px;
	border:5px solid #fcc;
	margin:20px auto;
	border-radius:50%;
}

.rocket img{
	display:block;
	width:100%;
	height: 100%;
	transition: all 1s;  /* 过渡 */
}

.rocket:hover img{
	transform: translateY(-400px);
}

运行效果(动态的):

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值